我使用的是Python 3.6版。
class Pen:
def write(self):
print("Writing")
def __call__(self,p):
print("calling a pen object")
pen1 = Pen()
print(callable(pen1.write()))
上面的Python示例返回以下输出
Writing
False
为什么会这样? 实例方法在Python中不可调用吗?
答案 0 :(得分:2)
pen1.write
是可调用的,但不是结果pen1.write()
。这将调用该方法并将其结果(None
)作为参数传递给callable
方法。 None
不可调用。
尝试:
print(callable(pen1.write))