Difference between static method and a function as a class attribute?
Martin v. Löwis
loewis at informatik.hu-berlin.de
Fri Sep 6 10:20:45 EDT 2002
Gonçalo Rodrigues <op73418 at mail.telepac.pt> writes:
> What are the differences, if any, between 1 and 2?
In 1, test.funtest will be an unbound method; in 2, it will be a
function.
> And if there are any differences do they really matter, that is, does
> anybody has any test cases where 1 and 2 are not interchangeable?
Sure:
def m():
print "called ::m"
class t1(object):
method = m
class t2(object):
def m():
print "called t2::m"
method = staticmethod(m)
t2.method()
t1.method()
gives
called t2::m
Traceback (most recent call last):
File "a.py", line 13, in ?
t1.method()
TypeError: unbound method m() must be called with t1 instance as first argument (got nothing instead)
Regards,
Martin
More information about the Python-list
mailing list