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 相关文章推荐
linux环境下安装pyramid和新建项目的步骤
Nov 27 Python
Python yield使用方法示例
Dec 04 Python
Python中的闭包总结
Sep 18 Python
python文件操作之目录遍历实例分析
May 20 Python
编写Python小程序来统计测试脚本的关键字
Mar 12 Python
python中使用正则表达式的连接符示例代码
Oct 10 Python
PyQt实现界面翻转切换效果
Apr 20 Python
python pandas消除空值和空格以及 Nan数据替换方法
Oct 30 Python
用Python将Excel数据导入到SQL Server的例子
Aug 24 Python
Python缓存技术实现过程详解
Sep 25 Python
python中文分词库jieba使用方法详解
Feb 11 Python
记录一下scrapy中settings的一些配置小结
Sep 28 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函数array_flip()在重复数组元素删除中的作用
2013/06/27 PHP
PHP实现支持GET,POST,Multipart/form-data的HTTP请求类
2014/09/24 PHP
phpMyAdmin安装并配置允许空密码登录
2015/07/04 PHP
HTML中嵌入PHP的简单方法
2016/02/16 PHP
使用PHPStorm+XDebug搭建单步调试环境
2017/11/19 PHP
Laravel 简单实现Ajax滚动加载示例
2019/10/22 PHP
function, new function, new Function之间的区别
2007/03/08 Javascript
JavaScript 操作键盘的Enter事件(键盘任何事件),兼容多浏览器
2010/10/11 Javascript
用js实现trim()的解决办法
2013/04/16 Javascript
jquery高效反选具体实现
2013/05/05 Javascript
javascript中简单的进制转换代码实例
2013/10/26 Javascript
开发中可能会用到的jQuery小技巧
2014/03/07 Javascript
js Calender控件使用详解
2015/01/05 Javascript
easyui Draggable组件实现拖动效果
2015/08/19 Javascript
AngularJS自定义插件实现网站用户引导功能示例
2016/11/07 Javascript
jQuery操作复选框(CheckBox)的取值赋值实现代码
2017/01/10 Javascript
jQuery实现单击按钮遮罩弹出对话框效果(1)
2017/02/20 Javascript
利用forever和pm2部署node.js项目过程
2017/05/10 Javascript
一步步教会你微信小程序的登录鉴权
2018/04/09 Javascript
jQuery滚动条美化插件nicescroll简单用法示例
2018/04/18 jQuery
vue自定义移动端touch事件之点击、滑动、长按事件
2018/07/10 Javascript
微信小程序实现张图片合成为一张并下载
2019/07/16 Javascript
React实现全选功能
2020/08/25 Javascript
python定时器使用示例分享
2014/02/16 Python
python实现上传下载文件功能
2020/11/19 Python
PyQt QListWidget修改列表项item的行高方法
2019/06/20 Python
python线程安全及多进程多线程实现方法详解
2019/09/27 Python
关于python中导入文件到list的问题
2020/10/31 Python
巧用CSS3的calc()宽度计算做响应模式布局的方法
2018/03/22 HTML / CSS
HTML5本地存储和本地数据库实例详解
2017/09/05 HTML / CSS
中国一家专注拼团的社交购物网站:拼多多
2018/06/13 全球购物
俄罗斯品牌服装和鞋子的在线商店:KUPIVIP
2019/10/27 全球购物
英语国培研修感言
2014/02/13 职场文书
爱护公物标语
2014/06/24 职场文书
护士医德考评自我评价
2015/03/03 职场文书
python3读取文件指定行的三种方法
2021/05/24 Python