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中threading超线程用法实例分析
May 16 Python
在Django框架中编写Contact表单的教程
Jul 17 Python
python+pandas+时间、日期以及时间序列处理方法
Jul 10 Python
python 美化输出信息的实例
Oct 15 Python
python实现二维插值的三维显示
Dec 17 Python
详解Python3之数据指纹MD5校验与对比
Jun 11 Python
python 多线程对post请求服务器测试并发的方法
Jun 13 Python
Django后端接收嵌套Json数据及解析详解
Jul 17 Python
Python3.8对可迭代解包的改进及用法详解
Oct 15 Python
pygame实现俄罗斯方块游戏(基础篇2)
Oct 29 Python
Python简易计算器制作方法代码详解
Oct 31 Python
python 下载文件的几种方式分享
Apr 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
php继承的一个应用
2011/09/06 PHP
Laravel 5框架学习之数据库迁移(Migrations)
2015/04/08 PHP
php一个文件搞定微信jssdk配置
2016/12/12 PHP
html组件不可输入(只读)同时任何组件都有效
2013/04/01 Javascript
html文件中jquery与velocity变量中的$冲突的解决方法
2013/11/01 Javascript
Js nodeType 属性全面解析
2013/11/14 Javascript
js截取中英文字符串、标点符号无乱码示例解读
2014/04/17 Javascript
jQuery实现信息提示框(带有圆角框与动画)效果
2015/08/07 Javascript
JS实现网页上随机产生超链接地址的方法
2015/11/09 Javascript
js实现图片淡入淡出切换简易效果
2016/08/22 Javascript
AngularJS自定义控件实例详解
2016/12/13 Javascript
JavaScript模板引擎Template.js使用详解
2016/12/15 Javascript
利用JS实现scroll自定义滚动效果详解
2017/10/17 Javascript
详解angularjs 学习之 scope作用域
2018/01/15 Javascript
浅谈用Webpack路径压缩图片上传尺寸获取的问题
2018/02/22 Javascript
vue2路由基本用法实例分析
2020/03/06 Javascript
学前端,css与javascript重难点浅析
2020/06/11 Javascript
python3 实现的人人影视网站自动签到
2016/06/19 Python
python获取指定时间差的时间实例详解
2017/04/11 Python
关于Pycharm无法debug问题的总结
2019/01/19 Python
Python实现删除排序数组中重复项的两种方法示例
2019/01/31 Python
pandas删除行删除列增加行增加列的实现
2019/07/06 Python
python的等深分箱实例
2019/11/22 Python
Python要如何实现列表排序的几种方法
2020/02/21 Python
Java面试题:请说出如下代码的输出结果
2013/04/22 面试题
介绍下static、final、abstract区别
2015/01/30 面试题
业务员岗位职责
2013/11/16 职场文书
二年级数学教学反思
2014/01/21 职场文书
八年级语文教学反思
2014/02/11 职场文书
教师演讲稿开场白
2014/08/25 职场文书
考研导师推荐信范文
2015/03/27 职场文书
音乐课《小猫钓鱼》教学反思
2016/02/18 职场文书
承诺书应该怎么写?
2019/09/10 职场文书
pytorch 实现多个Dataloader同时训练
2021/05/29 Python
css height属性中的calc方法详解
2021/06/03 HTML / CSS
Python利用zhdate模块实现农历日期处理
2022/03/31 Python