On 10/4/2018 4:25 AM, Ibrahim Dalal wrote:
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.
It is either a buggy instance method, missing the required first
parameter, *or* a buggy static method, missing the decorator, making it
appear to the interpreter as an instance method even though it it not.
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?
Fix the bug, whichever deficiency you regard as the bug.
--
Terry Jan Reedy
--
https://mail.python.org/mailman/listinfo/python-list