Python内置函数(9)——callable

英文文档:

callable(object)
Return True if the object argument appears callable, False if not. If this returns true, it is still possible that a call fails, but if it is false, calling object will never succeed. Note that classes are callable (calling a class returns a new instance); instances are callable if their class has a__call__() method.

说明:

  1. 方法用来检测对象是否可被调用,可被调用指的是对象能否使用()括号的方法调用。
>>> callable(callable)
True
>>> callable(1)
False>>> 1()
Traceback (most recent call last):
    File "<pyshell#5>", line 1, in <module>
1()
TypeError: 'int' object is not callable
  1. 可调用对象,在实际调用也可能调用失败;但是不可调用对象,调用肯定不成功。
  2. 类对象都是可被调用对象,类的实例对象是否可调用对象,取决于类是否定义了 __call__ 方法。
>>> class A: #定义类A 
    pass
>>> callable(A) #类A是可调用对象
True
>>> a = A() #调用类A
>>> callable(a) #实例a不可调用
False
>>> a() #调用实例a失败
Traceback (most recent call last): 
    File "<pyshell#31>", line 1, in <module> 
      a()
TypeError: 'A' object is not callable
>>> class B: #定义类B 
      def __call__(self): 
         print('instances are callable now.') 
>>> callable(B) #类B是可调用对象
True
>>> b = B() #调用类B
>>> callable(b) #实例b是可调用对象
True
>>> b() #调用实例b成功
instances are callable now.
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 136,665评论 19 139
  • Python内置函数详解——总结篇 ** 引 言** ** 数学运算** abs:求数值的绝对值>>> abs...
    yutiansut阅读 922评论 0 1
  • 1. Java基础部分 基础部分的顺序:基本语法,类相关的语法,内部类的语法,继承相关的语法,异常的语法,线程的语...
    子非鱼_t_阅读 34,789评论 18 399
  • 转至元数据结尾创建: 董潇伟,最新修改于: 十二月 23, 2016 转至元数据起始第一章:isa和Class一....
    40c0490e5268阅读 2,081评论 0 9
  • 创建项目目录 使用vue-cli创建vue项目 以浏览器方式执行 安装nwjs环境依赖 路由模式设置为histor...
    守心向暖阅读 4,169评论 0 1

友情链接更多精彩内容