Calling an instance method defined without any 'self' parameter

Ibrahim Dalal ibrahimhusain007 at gmail.com
Thu Oct 4 04:25:24 EDT 2018


class A:
    def foo():
        print 'Hello, world!'

a = A()print A.foo       # <unbound method A.foo>print a.foo       #
<bound method A.foo of <__main__.A instance at 0x7efc462a7830>>print
type(A.foo) # <type 'instancemethod'>
a.foo()           # TypeError: foo() takes no arguments (1 given)
A.foo()           # TypeError: unbound method foo() must be called
with A instance as first argument (got nothing instead)


Clearly, foo is an instance method. I know one should use @staticmethod for
declaring a method static. The question here is, given the above code, is
there any way to call foo?

Python 2.7


Thanks,



More information about the Python-list mailing list