在这段代码中:
def fa(a,b):
print a
print b
print " fa called"
class A:
@classmethod
def fa(a,b):
print a
print b
print " A.fa called"
class B:
def __init__(s,a):
s.a = a
obj1 = B(A.fa)
obj1.a("xxxx")
obj2 = B(fa)
obj2.a("xxxx")
输出:
__main__.A
xxxx
A.fa called
Traceback (most recent call last):
File "test.py", line 20, in <module>
obj2.a("xxxx")
TypeError: fa() takes exactly 2 arguments (1 given)
为什么免费方法“fa”没有接收“self”作为第一个参数?绑定方法 A.fa 的行为符合预期。