I keep forgetting to reply-to the list. I wish it was the default. On Wed, June 4, 2008 11:21 am, Andreas Kostyrka wrote:
> Simple (untested in the mailer typed): > > > class A: def __getattr__(self, key): if key.startswith("user"): def func(): > return key[4:] return func raise AttributeError > > assert A().userabc() == "abc" > > Something like that? Yes it works! Brilliant. You listed __init__ and I'm not sure I know what you mean. I was thinking of not having access to the original class/method so I did this awful thing: a_def.py class A: def SaySomething(self): print 'this' ____ import a_def def SayElse(dummy=None): print 'that' a_def.A.SaySomething = SayElse a_def.A().SaySomething() --- and 'that' came out. I guess the A class could have been written to prevent that from happening. Thank you for the info and thoughts. Marilyn Davis > > > > On Wednesday 04 June 2008 19:12:16 you wrote: > >> Sorry, i doesn't explain my question how i should. >> >> >> What I'm trying to accomplish is to add methods dynamically at class >> instances. but i what to create them whe a A().someMethod() is called ( >> someMethod doesn't exist ) >> >> Like as with attributes. >> >> >> So far i try with ( at instance and at class level ): >> >> >> def foo(): return lambda: 'foo' >> >> class A(object): pass >> >> a = A() a.foo = foo() >> >> --------------------------- >> >> >> def foo(): return lambda self: 'foo' >> >> class A(object): pass >> >> A.foo = foo() >> a= A() >> >> This works, but i really like to be able of bound those functions using >> a sintax like: >> >> a = A() a.someMethod() # This should bound the somethod to a >> function. >> >> >> Thaks in advance >> > > > _______________________________________________ > Tutor maillist - Tutor@python.org > http://mail.python.org/mailman/listinfo/tutor _______________________________________________ Tutor maillist - Tutor@python.org http://mail.python.org/mailman/listinfo/tutor