__getattr__ functionality for modules?
Alex
delete.this.part.alex.news at attbi.com
Sun May 18 18:21:49 EDT 2003
Alex wrote:
> Alex wrote:
>
>> Stefan Franke wrote:
>>
>>> Is there a way to achieve for modules what overriding __getattr__ does
>>> for classes?
>>>
>>> My problem: I want an infinite number of identifiers appear as if they
>>> were defined in the global namespace.
>>>
>>> The identifiers have structured names (say, id2m5, id2m6, id3m2, ...),
>>> and I'd like to generate the respective values on the fly and cache
>>> them for subsequent lookups.
>>>
>>> If they were attributes of an object it would be trivial, but how do I
>>> achieve this for name lookups in the __main__ (or any other) module?
>>>
>>> Stefan
>>
>> My experience is that getattr works on modules other than __main__. For
>> __main__, I suppose you could use the globals() dictionary.
>>
>> Alex
>>
>>
>> Python 2.2.2 (#1, May 11 2003, 11:57:38)
>> [GCC 3.2.2] on linux2
>> Type "help", "copyright", "credits" or "license" for more information.
>>>>> import os
>>>>> getattr(os, 'path')
>> <module 'posixpath' from '/usr/lib/python2.2/posixpath.pyc'>
>>>>>
>>>>> class A:
>> ... pass
>> ...
>>>>> globals()['A']
>> <class __main__.A at 0x8125084>
>>>>> globals()['B']='this is a test'
>>>>> B
>> 'this is a test'
>>>>>
>
>
> PS: I have to ask, why do you want these not encapsulate the identifiers
> in a class?
That last one accidental got sent of before it finished: It should of read:
I have to ask, why not encapsulate the identifiers in a class?
More information about the Python-list
mailing list