Static method object not callable
Paul Morrow
pm_mon at yahoo.com
Tue Aug 10 21:57:58 EDT 2004
Edward Diener wrote:
> This simple code example gives me the message, "TypeError: 'staticmethod'
> object is not callable".
>
> class X(object):
> def Y(x):
> print x
> Y = staticmethod(Y)
> ad = { 1 : Y }
> def Z(self):
> self.ad[1](3)
> x = X()
> x.Z()
> print "Done."
>
> I know there must be a way to have a class attribute reference a static
> method, and then call that static method through the reference, so if anyone
> can correct this it would be appreciated.
>
>
>
Here are two alternatives.
class X(object):
def Y(x):
print x
Y = staticmethod(Y)
ad = { 1 : 'Y' }
def Z(self):
getattr(self, self.ad[1])(3)
x = X()
x.Z()
print "Done."
class X(object):
def Y(x):
print x
Y = staticmethod(Y)
def __init__(self):
self.ad = { 1 : self.Y }
def Z(self):
self.ad[1](3)
x = X()
x.Z()
print "Done."
More information about the Python-list
mailing list