overriding methods - two questions
Donn Ingle
donn.ingle at gmail.com
Fri Nov 16 23:56:22 EST 2007
> I am curious as to why you want to go through such contortions. What
> do you gain.
for obj in list:
if obj has a foo() method:
a = something
b = figureitout ( )
object.foo ( a, b )
I am accepting objects of any class on a stack. Depending on their nature I
want to call certain methods within them. They can provide these methods or
not.
> What happens, for example, if a subclass of Judy is
> passed in that does not override foo? Should foo be called in that
> case or not?
No.
Bruno has given me a good solution:
for obj in list:
if 'foo' in obj.__class__.__dict__:
etc.
Although I am concerned that it's a loop ('in') and so may be slower than
some other way to detect foo().
So, that's the story.
/d
More information about the Python-list
mailing list