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 and、or以及and-or语法总结
Apr 14 Python
Python编程中用close()方法关闭文件的教程
May 24 Python
详解Django中的form库的使用
Jul 18 Python
一个基于flask的web应用诞生 记录用户账户登录状态(6)
Apr 11 Python
Python数据结构与算法之常见的分配排序法示例【桶排序与基数排序】
Dec 15 Python
查找python项目依赖并生成requirements.txt的方法
Jul 10 Python
python 使用socket传输图片视频等文件的实现方式
Aug 07 Python
django自带调试服务器的使用详解
Aug 29 Python
Python 中list ,set,dict的大规模查找效率对比详解
Oct 11 Python
flask 实现token机制的示例代码
Nov 07 Python
pytorch nn.Conv2d()中的padding以及输出大小方式
Jan 10 Python
Python使用pandas导入csv文件内容的示例代码
Dec 24 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
ip签名探针
2006/10/09 PHP
将PHP作为Shell脚本语言使用
2006/10/09 PHP
php中spl_autoload详解
2014/10/17 PHP
WordPress中&quot;无法将上传的文件移动至&quot;错误的解决方法
2015/07/01 PHP
php类的定义与继承用法实例
2015/07/07 PHP
PHP计算加权平均数的方法
2015/07/16 PHP
PHP设计模式之抽象工厂模式实例分析
2019/03/25 PHP
PHP7 新增常量
2021/03/09 PHP
JS应用之禁止抓屏、复制、打印
2008/02/21 Javascript
详解JavaScript中的forEach()方法的使用
2015/06/08 Javascript
详解JavaScript for循环中发送AJAX请求问题
2020/06/23 Javascript
Jquery attr()方法 属性赋值和属性获取详解
2016/04/15 Javascript
原生JS 购物车及购物页面的cookie使用方法
2017/08/21 Javascript
纯js实现图片匀速淡入淡出效果
2017/08/22 Javascript
详解JavaScript中的六种错误类型
2017/09/21 Javascript
vue、react等单页面项目部署到服务器的方法及vue和react的区别
2018/09/29 Javascript
详解Angular模板引用变量及其作用域
2018/11/23 Javascript
微信小程序版本自动更新的方法
2019/06/14 Javascript
layui递归实现动态左侧菜单
2019/07/26 Javascript
jQuery实现高度灵活的表单验证功能示例【无UI】
2020/04/30 jQuery
小程序实现密码输入框
2020/11/16 Javascript
python监控文件或目录变化
2016/06/07 Python
python图像常规操作
2017/11/11 Python
python绘制双柱形图代码实例
2017/12/14 Python
python实现批量解析邮件并下载附件
2018/06/19 Python
在Pycharm中修改文件默认打开方式的方法
2019/01/17 Python
Python Selenium 之数据驱动测试的实现
2019/08/01 Python
Python Request爬取seo.chinaz.com百度权重网站的查询结果过程解析
2019/08/13 Python
Django中ajax发送post请求 报403错误CSRF验证失败解决方案
2019/08/13 Python
Python+OpenCV实现实时眼动追踪的示例代码
2019/11/11 Python
python如何使用jt400.jar包代码实例
2019/12/20 Python
Python 实现进度条的六种方式
2021/01/06 Python
土耳其家居建材网站:Koçtaş
2016/11/22 全球购物
德国购买健身器材:AsVIVA
2017/08/09 全球购物
可以在一个PHP文件里面include另外一个PHP文件两次吗
2015/05/22 面试题
广州喜创信息技术有限公司JAVA软件工程师笔试题
2012/10/17 面试题