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基于urllib实现按照百度音乐分类下载mp3的方法
May 25 Python
Python使用urllib2模块实现断点续传下载的方法
Jun 17 Python
使用Python脚本生成随机IP的简单方法
Jul 30 Python
关于Python中Inf与Nan的判断问题详解
Feb 08 Python
Python机器学习k-近邻算法(K Nearest Neighbor)实例详解
Jun 25 Python
Python3实现从排序数组中删除重复项算法分析
Apr 03 Python
nginx黑名单和django限速,最简单的防恶意请求方法分享
Aug 09 Python
使用tensorboard可视化loss和acc的实例
Jan 21 Python
python2.7使用scapy发送syn实例
May 05 Python
Flask中sqlalchemy模块的实例用法
Aug 02 Python
Python爬虫抓取论坛关键字过程解析
Oct 19 Python
python实现经纬度采样的示例代码
Dec 10 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
JAVA/JSP学习系列之四
2006/10/09 PHP
微信公众平台开发之配置与请求
2015/08/26 PHP
分享3个php获取日历的函数
2015/09/25 PHP
[原创]PHP实现逐行删除文件右侧空格的方法
2015/12/25 PHP
laravel 框架配置404等异常页面
2019/01/07 PHP
laravel 实现用户登录注销并限制功能
2019/10/24 PHP
[原创]网络复制内容时常用的正则+editplus
2006/11/30 Javascript
JavaScript DOM 学习第三章 内容表格
2010/02/19 Javascript
js中的屏蔽的使用示例
2013/07/30 Javascript
Javascript中匿名函数的多种调用方式总结
2013/12/06 Javascript
详解vue中使用express+fetch获取本地json文件
2017/10/10 Javascript
layui在form表单页面通过Validform加入简单验证的方法
2019/09/06 Javascript
vue.js this.$router.push获取不到params参数问题
2020/03/03 Javascript
一文读懂vue动态属性数据绑定(v-bind指令)
2020/07/20 Javascript
js实现3D旋转效果
2020/08/18 Javascript
jQuery实现简单全选框
2020/09/13 jQuery
[02:51]2014DOTA2 TI小组赛总结中国军团全部进军钥匙球馆
2014/07/15 DOTA
python根据出生日期获得年龄的方法
2015/03/31 Python
Python中一些不为人知的基础技巧总结
2018/05/19 Python
Python读取英文文件并记录每个单词出现次数后降序输出示例
2018/06/28 Python
Python matplotlib通过plt.scatter画空心圆标记出特定的点方法
2018/12/13 Python
Python3实现的简单工资管理系统示例
2019/03/12 Python
浅谈python输出列表元素的所有排列形式
2020/02/26 Python
HTML5 Plus 实现手机APP拍照或相册选择图片上传功能
2016/07/13 HTML / CSS
美国值得信赖的婚恋交友网站:eHarmony
2018/10/04 全球购物
TIME时代杂志台湾总代理:台时亚洲
2018/10/22 全球购物
ajax是什么及其工作原理
2012/02/08 面试题
设计4个线程,其中两个线程每次对j增加1,另外两个线程对j每次减少1。写出程序。
2014/12/30 面试题
初中生自我评价
2014/02/01 职场文书
怎样填写就业意向
2014/04/02 职场文书
就业协议书怎么填
2014/04/11 职场文书
国际残疾人日广播稿范文
2014/10/09 职场文书
结婚司仪主持词
2015/06/29 职场文书
文艺有韵味的诗句(生命类、亲情类...)
2019/07/11 职场文书
goland设置颜色和字体的操作
2021/05/05 Golang
windows10声卡驱动怎么安装?win10声卡驱动安装操作步骤教程
2022/08/05 数码科技