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实现Windows上气泡提醒效果的方法
Jun 03 Python
简单讲解Python编程中namedtuple类的用法
Jun 21 Python
Python调用C++程序的方法详解
Jan 24 Python
Python自动化运维_文件内容差异对比分析
Dec 13 Python
用Python写王者荣耀刷金币脚本
Dec 21 Python
利用Python实现Shp格式向GeoJSON的转换方法
Jul 09 Python
Python如何筛选序列中的元素的方法实现
Jul 15 Python
Python生成器常见问题及解决方案
Mar 21 Python
python numpy实现rolling滚动案例
Jun 08 Python
Python加速程序运行的方法
Jul 29 Python
如何在 Matplotlib 中更改绘图背景的实现
Nov 26 Python
基于 Python 实践感知器分类算法
Jan 07 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_fetch_assoc和mysql_fetch_row的功能加起来就是mysql_fetch_array
2007/01/15 PHP
PHP防止跨域提交表单
2013/11/01 PHP
php导出word格式数据的代码实例
2013/11/25 PHP
php导出word文档与excel电子表格的简单示例代码
2014/03/08 PHP
PHP实现的mysql主从数据库状态检测功能示例
2017/07/20 PHP
PHP实现QQ、微信和支付宝三合一收款码实例代码
2018/02/19 PHP
thinkphp5使用无限极分类
2019/02/18 PHP
php 下 html5 XHR2 + FormData + File API 上传文件操作实例分析
2020/02/28 PHP
JavaScript的面向对象(一)
2006/11/09 Javascript
自适应高度框架 ----属个人收藏内容
2007/01/22 Javascript
JAVASCRIPT车架号识别/验证函数代码 汽车车架号验证程序
2012/01/08 Javascript
onbeforeunload与onunload事件异同点总结
2013/06/24 Javascript
2014年50个程序员最适用的免费JQuery插件
2014/12/15 Javascript
JavaScript实现鼠标滑过图片变换效果的方法
2015/04/16 Javascript
javascript实现控制文字大中小显示
2015/04/28 Javascript
js控制div层的叠加简单方法
2016/10/15 Javascript
利用Ionic2 + angular4实现一个地区选择组件
2017/07/27 Javascript
微信小程序自定义toast实现方法详解【附demo源码下载】
2017/11/28 Javascript
vue 巧用过渡效果(小结)
2018/09/22 Javascript
前端js中的事件循环eventloop机制详解
2019/05/15 Javascript
js实现百度淘宝搜索功能
2020/02/17 Javascript
详解vue 中 scoped 样式作用域的规则
2020/09/14 Javascript
原生js实现表格循环滚动
2020/11/24 Javascript
Python3如何解决字符编码问题详解
2017/04/23 Python
python3大文件解压和基本操作
2017/12/15 Python
新手入门Python编程的8个实用建议
2019/07/12 Python
python利用re,bs4,requests模块获取股票数据
2019/07/29 Python
Python类中的装饰器在当前类中的声明与调用详解
2020/04/15 Python
python 安装移动复制第三方库操作
2020/07/13 Python
python 多线程死锁问题的解决方案
2020/08/25 Python
澳大利亚在线消费电子产品商店:TobyDeals
2020/01/05 全球购物
超市业务员岗位职责
2013/12/05 职场文书
大学生饮食连锁店创业计划书
2014/01/17 职场文书
开学季活动策划方案
2014/02/28 职场文书
英文自荐信常用句子
2014/03/26 职场文书
学校献爱心活动总结
2014/07/08 职场文书