dynamic call of a function

Nick Coghlan ncoghlan at iinet.net.au
Sun Jan 23 00:37:59 EST 2005


kishore wrote:
> Hi Luigi Ballabio,
> 
> Thankyou very much for your reply,
> it worked well.

It does work in most cases, but "getattr(self, methodName)" is generally to be 
preferred over "vars(self.__class__)[methodName]", as the latter does not use 
Python's standard attribute lookup scheme.

The semantics of the following two statements are basically identical:
   getattr(t, 'bar')()
   t.bar()

Using vars() directly, however, results in a slightly different lookup process 
that will *usually* give the same answer as above, but not always. It's that 
'not always' which can end up hurting. . .

Regards,
Nick.

-- 
Nick Coghlan   |   ncoghlan at email.com   |   Brisbane, Australia
---------------------------------------------------------------
             http://boredomandlaziness.skystorm.net



More information about the Python-list mailing list