Python基于callable函数检测对象是否可被调用


Posted in Python onOctober 16, 2020

英文文档:

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
>>>

2. 可调用对象,在实际调用也可能调用失败;但是不可调用对象,调用肯定不成功。

3. 类对象都是可被调用对象,类的实例对象是否可调用对象,取决于类是否定义了__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.

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Python 相关文章推荐
Python3使用requests发闪存的方法
May 11 Python
Django模板变量如何传递给外部js调用的方法小结
Jul 24 Python
python决策树之C4.5算法详解
Dec 20 Python
使用PYTHON解析Wireshark的PCAP文件方法
Jul 23 Python
使用Fabric自动化部署Django项目的实现
Sep 27 Python
python 变量初始化空列表的例子
Nov 28 Python
使用python+poco+夜神模拟器进行自动化测试实例
Apr 23 Python
pytest fixtures装饰器的使用和如何控制用例的执行顺序
Jan 28 Python
python基于OpenCV模板匹配识别图片中的数字
Mar 31 Python
Python+Appium新手教程
Apr 17 Python
python非标准时间的转换
Jul 25 Python
python之PySide2安装使用及QT Designer UI设计案例教程
Jul 26 Python
python collections模块的使用
Oct 16 #Python
python 如何使用find和find_all爬虫、找文本的实现
Oct 16 #Python
Django实现随机图形验证码的示例
Oct 15 #Python
如何使用Python自动生成报表并以邮件发送
Oct 15 #Python
如何在Win10系统使用Python3连接Hive
Oct 15 #Python
Python进行特征提取的示例代码
Oct 15 #Python
Python通过递归函数输出嵌套列表元素
Oct 15 #Python
You might like
MySql 按时间段查询数据方法(实例说明)
2008/11/02 PHP
codeigniter显示所有脚本执行时间的方法
2015/03/21 PHP
浅析Laravel5中队列的配置及使用
2016/08/04 PHP
javascript函数库-集合框架
2007/04/27 Javascript
基于Jquery的表格隔行换色,移动换色,点击换色插件
2010/12/22 Javascript
jQuery实现图片信息的浮动显示实例代码
2013/08/28 Javascript
php is_numberic函数造成的SQL注入漏洞
2014/03/10 Javascript
实例详解jQuery Mockjax 插件模拟 Ajax 请求
2016/01/12 Javascript
jQuery属性选择器用法示例
2016/09/09 Javascript
基于jQuery实现文字打印动态效果
2017/04/21 jQuery
vue+iview写个弹框的示例代码
2017/12/05 Javascript
react+redux的升级版todoList的实现
2017/12/18 Javascript
JavaScript判断变量名是否存在数组中的实例
2017/12/28 Javascript
vue-cli 引入jQuery,Bootstrap,popper的方法
2018/09/03 jQuery
React降级配置及Ant Design配置详解
2018/12/27 Javascript
python subprocess 杀掉全部派生的子进程方法
2017/01/16 Python
Queue 实现生产者消费者模型(实例讲解)
2017/11/13 Python
python3对接mysql数据库实例详解
2019/04/30 Python
Python完成毫秒级抢淘宝大单功能
2019/06/06 Python
python读csv文件时指定行为表头或无表头的方法
2019/06/26 Python
python3 selenium自动化 frame表单嵌套的切换方法
2019/08/23 Python
python 录制系统声音的示例
2020/12/21 Python
基于CSS3特效之动画:animation的应用
2013/05/09 HTML / CSS
美国成衣女装品牌:CHICO’S
2016/09/19 全球购物
Casadei卡萨蒂官网:意大利奢侈鞋履品牌
2017/10/28 全球购物
英国时尚优质的女装:Hope Fashion
2018/08/14 全球购物
萨克斯第五大道英国:Saks Fifth Avenue英国
2019/04/01 全球购物
德国专业木制品经销商:Holz-Direkt24
2019/12/26 全球购物
优良学风班总结材料
2014/02/08 职场文书
营销总监岗位职责范本
2014/02/26 职场文书
委托书模板
2014/04/04 职场文书
党校学习个人总结
2015/02/15 职场文书
2015年财务经理工作总结
2015/05/13 职场文书
SQLServer 错误: 15404,无法获取有关 Windows NT 组/用户 WIN-8IVSNAQS8T7\Administrator 的信息
2021/06/30 SQL Server
Android开发之底部导航栏的快速实现
2022/04/28 Java/Android
Python自动操作神器PyAutoGUI的使用教程
2022/06/16 Python