I know how to create a class that has attributes from a list and
nothing else by overloading __getattr__ and making sure that the
accessed attribute appears in my list. Now I would like to do the same
with a module, say x.py, in which I have a list, say mylist, and after
importing x from another module I would like to be able to say x.one(
) or x.two( ) if 'one' and 'two' are in mylist and raise an exception
if they aren't. Is this possible?
Not really. But, why not create an instance of some custom type in x.py, and
import that instance into the current namespace? Just as convenient.
x.py
----
mylist = {"one":1,"two":2}
class test(object):
def __getattr__(self,name):
return mylist.get(name,None)
test = test()
---
y.py
---
from x import test
print test.one
print test.two
print test.three
---
--- Heiko.
Thanks, that looks pretty good, I'll do that.
>HW> y.py
>HW> ---
>HW> from x import test
>HW> print test.one
>HW> print test.two
>HW> print test.three
>HW> ---
Or even:
import x
x = x.test
print x.one
print x.two
print x.three
--
Piet van Oostrum <pi...@cs.uu.nl>
URL: http://www.cs.uu.nl/~piet [PGP 8DAE142BE17999C4]
Private email: pi...@vanoostrum.org
Or even:
---
from x import test as x
print x.one
print x.two
print x.three
---
--- Heiko.
>HW> from x import test as x
>HW> print x.one
>HW> print x.two
>HW> print x.three
Or replace test by x in x.py :=)