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 相关文章推荐
python快速排序代码实例
Nov 21 Python
Python Requests安装与简单运用
Apr 07 Python
Python爬虫DOTA排行榜爬取实例(分享)
Jun 13 Python
Python3 Random模块代码详解
Dec 04 Python
python3.4控制用户输入与输出的方法
Oct 17 Python
python 对给定可迭代集合统计出现频率,并排序的方法
Oct 18 Python
python学习--使用QQ邮箱发送邮件代码实例
Apr 16 Python
ZABBIX3.2使用python脚本实现监控报表的方法
Jul 02 Python
python按修改时间顺序排列文件的实例代码
Jul 25 Python
Python函数参数类型及排序原理总结
Dec 19 Python
基于Tensorflow读取MNIST数据集时网络超时的解决方式
Jun 22 Python
Python编程中Python与GIL互斥锁关系作用分析
Sep 15 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
php下使用iconv需要注意的问题
2010/11/20 PHP
PHP+jquery实时显示网站在线人数的方法
2015/01/04 PHP
php的sso单点登录实现方法
2015/01/08 PHP
PHP正则替换函数preg_replace()报错:Notice Use of undefined constant的解决方法分析
2017/02/04 PHP
form表单传递数组数据、php脚本接收的实例
2017/02/09 PHP
EXT中xtype的含义分析
2010/01/07 Javascript
JavaScript DOM学习第八章 表单错误提示
2010/02/19 Javascript
jquery text(),val(),html()方法区别总结
2013/11/04 Javascript
AngularJS 执行流程详细介绍
2016/08/18 Javascript
HTML5 canvas 9绘制图片实例详解
2016/09/06 Javascript
chrome下判断点击input上标签还是其余标签的实现方法
2016/09/18 Javascript
微信小程序 滚动到某个位置添加class效果实现代码
2017/04/19 Javascript
Vue项目中quill-editor带样式编辑器的使用方法
2017/08/08 Javascript
jQuery实现的两种简单弹窗效果示例
2018/04/18 jQuery
浅谈vuex actions和mutation的异曲同工
2018/12/13 Javascript
javascript之分片上传,断点续传的实际项目实现详解
2019/09/05 Javascript
vue+elementUi 实现密码显示/隐藏+小图标变化功能
2020/01/18 Javascript
js函数柯里化的方法和作用实例分析
2020/04/11 Javascript
在Angular中实现一个级联效果的下拉框的示例代码
2020/05/20 Javascript
前端开发基础javaScript的六大作用
2020/08/06 Javascript
Vue父组件监听子组件生命周期
2020/09/03 Javascript
python 系统调用的实例详解
2017/07/11 Python
opencv python统计及绘制直方图的方法
2019/01/21 Python
Python OpenCV之图片缩放的实现(cv2.resize)
2019/06/28 Python
python3 中的字符串(单引号、双引号、三引号)以及字符串与数字的运算
2019/07/18 Python
html5 canvas实现给图片添加平铺水印
2019/08/20 HTML / CSS
巴黎卡诗美国官方网站:始于1964年的头发头皮护理专家
2017/07/10 全球购物
雅诗兰黛加拿大官网:Estee Lauder加拿大
2019/07/31 全球购物
PyQt 如何创建自定义QWidget
2021/03/24 Python
护士求职推荐信范文
2013/11/23 职场文书
党员公开承诺事项
2014/03/25 职场文书
竞选劳动委员演讲稿
2014/04/28 职场文书
预备党员群众路线教育实践活动思想汇报2014
2014/10/25 职场文书
党的群众路线教育实践活动实施方案
2014/10/31 职场文书
2015廉洁自律个人总结
2015/02/14 职场文书
MySQL定时备份数据库(全库备份)的实现
2021/09/25 MySQL