Python Macros
Jeff Shannon
jeff at ccvcorp.com
Wed Oct 6 15:13:08 EDT 2004
Arich Chanachai wrote:
> <SNIP>
>> You mean some refinement of this sort of thing:
>>
>> class X(object):
>> a = "lives in X"
>> def __getattr__(self, name):
>> return getattr(U,name)
>> class U(object):
>> b = "lives in Y"
>> x = X()
>> print x.a
>> print x.b
>>
>> ?
>>
>
> Sure, but what if I dynamically (at runtime) extend X to include
> variable b. Will it then print X.b or still U.b?
In this case, as I understand it, adding an attribute b to either x (the
instance) or X (the class) will cause x.b to resolve to the new
attribute, and *not* to U.b -- attributes are dynamically looked up each
time they are used, and __getattr__() is called only when the standard
lookup methods (instance, class, superclass, ...) fail.
Jeff Shannon
Technician/Programmer
Credit International
More information about the Python-list
mailing list