[Python-Dev] Re: Re: closure semantics
Terry Reedy
tjreedy at udel.edu
Fri Oct 24 20:14:32 EDT 2003
More information about the Python-Dev mailing list
Fri Oct 24 20:14:32 EDT 2003
- Previous message: [Python-Dev] Re: closure semantics
- Next message: [Python-Dev] Re: closure semantics
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]
"Phillip J. Eby" <pje at telecommunity.com> wrote in message news:5.1.1.6.0.20031024170245.03260160 at telecommunity.com... > At 01:39 PM 10/24/03 -0700, Zack Weinberg wrote: > >class foo: > > A = 1 # these are class variables > > B = 2 > > C = 3 > > > > def __init__(self): > > self.a = 4 # these are instance variables > > self.b = 5 > > self.c = 6 > > > >I find this imperative syntax for declaring instance variables > >profoundly unintuitive. Further, on my first exposure to Python, I > >thought A, B, C were instance variables, although it wasn't hard to > >understand why they aren't. > > A, B, and C *are* instance variables. Why do you think they aren't? What? They are class attributes that live in the class dictionary, not the instance dictionary. They can be (directly) directly accessed as foo.A, etc, while foo.a, etc don't work. While they *may* serve as default or backup same-for-all-instances values for when there is no instance-specific value of the same name, that not the same, which is why they are defined differently. And a class attribute like number_of_instances would, conceptually, only be a class variable. Let's not confuse Zack further. Terry J. Reedy
- Previous message: [Python-Dev] Re: closure semantics
- Next message: [Python-Dev] Re: closure semantics
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]
More information about the Python-Dev mailing list