简单来说,Python中能被调用(called)的东西就是callable,例如function。使用内置的callable函数可以检查一个对象是不是callable。callable函数返回True说明是callable,返回False说明不是callable。
那么,Python中到底哪些东西是callable呢?有下面几种情况:
函数(function)
类
有__call__ 方法的类的实例(instance)
类的方法(method)
# 函数是callable
def f():
return 5
print(callable(f)) # True
f1 = f
print(callable(f1)) # True
# 数字不是callable
num = 5
print(callable(num)) # False
# 类是callable,如果类中有方法__call__,类的实例也是callable
class A:
def __call__(self):
print('This is A')
# This proves that class is callable
a = A()
print(callable(a)) # True
a()
# 如果类中没有方法__call__,类的实例不是callable
class B:
def __init__(self):
print("This is B")
b = B()
b() # TypeError: 'B' object is not callable
# 类的方法是callable
class C:
def m1(self):
print('This is m1')
print(callable(C.m1)) # True
C().m1()
原文链接:https://blog.csdn.net/liujg79/article/details/124944428
本文来自投稿,不代表本站立场,如若转载,请注明出处:https://typecho.firshare.cn/archives/4675.html
免责声明:文章内容不代表本站立场,本站不对其内容的真实性、完整性、准确性给予任何担保、暗示和承诺,仅供读者参考,文章版权归原作者所有。避免网络欺诈,本站不倡导任何交易行为。如您私自与本站转载自公开互联网中的资讯内容中提及到的个人或平台产生交易,则需自行承担后果。本站在注明来源的前提下推荐原文至此,仅作为优良公众、公开信息分享阅读,不进行商业发布、发表及从事营利性活动。如本文内容影响到您的合法权益(内容、图片等),请及时联系本站,我们会及时删除处理。