FEEDBACK WANTED: Type/class unification
Robin Becker
robin at jessikat.fsnet.co.uk
Tue Aug 14 12:54:08 EDT 2001
In article <cp7kw6em6n.fsf at cj20424-a.reston1.va.home.com>, Guido van
Rossum <guido at python.org> writes
>
....
>> I guess what I'm trying to get at is can getset be used to create a
>> readonly module level global or can it only be used for attributes.
>
>The getset descriptor works in cooperation with the default
>__getattr__ implementation. When a.foo is requested, __getattr__
>looks up a.__class__.foo first; if this is found and it is a
>descriptor, the descriptor's __get__ is called to finish the
>__getattr__ request. Ditto for __setattr__.
>
>If you could subclass modules (you can't yet in 2.2a1, but you will in
>2.2), you could do this for module attribute references, but global
>variable references don't go through __getattr__ and __setattr__ on
>the module -- they use the C APIs PyDict_GetItem and PyDict_SetItem
>and you can't override those.
>
>--Guido van Rossum (home page: http://www.python.org/~guido/)
OK I'll bite. What's a module attribute? I naively thought that
#M.py
X=3
....
makes X a global in M and also an attribute of module M? Obviously I'm
wrong. Are there things (apart from builtins etc) which are more global
than X in M's scope?
--
Robin Becker
More information about the Python-list
mailing list