Attribute reference design

Gary Herron gherron at islandtraining.com
Tue Jul 1 19:47:53 EDT 2008


chamalulu wrote:
> On Jul 2, 1:17 am, Gary Herron <gher... at islandtraining.com> wrote:
>   
>> No need.   Also, you can define a class attribute (C++ might call it a
>> static attribute) and access it transparently through an instance.
>>
>> class C:
>>   aClassAttribute = 123
>>   def __init__(self, ...):
>>     ...
>>
>> c = C()
>> ... do something with c.aClassAttribute ...
>>
>>     
>
> Actually, this is why I started too look into the attribute reference
> mechanics to begin with. Coming from mostly C# development I think
> it's weird to be able to refer to class attributes (static members)
> through a class instance (object). But I think I'm getting the
> picture. Function objects lay flat in memory (some heap...). 

Not quite.  Not *flat memory* or a heap.  Modules are first class 
objects, and functions (and classes and anything else) defined at the 
top level of the module are *attributes* of the module. 

Gary Herron


> When
> defined inside classes they are wrapped in method objects. When
> refered through classes or class instances they are unbound method
> objects or bound method objects respectively. Am I on the right track?
> I still don't get why these methods show up when I dir() a class
> instance.
>
> /Henrik
> --
> http://mail.python.org/mailman/listinfo/python-list
>   




More information about the Python-list mailing list