Irv Kalb <i...@furrypants.com> writes: > ... > The only thing that threw me was that in a line like: > > self.x = self.x + 1 > > in a method, these two uses of self.x can refer to different variables. I > actually teach Python, and this would be a very difficult thing to explain to > students. > > I have never run across this issue because I would never use the same name as > an instance attribute and a class attribute.
I use this regularly. Think of the "class attribute" as providing a default for a potential "instance attribute" of the same name. In Python, almost everything from a class can be overridden by the instance (exceptions: some special methods, descriptors). Thus, one can (almost) view a class as a defaults provider for its instances. Class attributes are just one case. -- https://mail.python.org/mailman/listinfo/python-list