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实现通过pil模块对图片格式进行转换的方法
Mar 24 Python
Python使用multiprocessing实现一个最简单的分布式作业调度系统
Mar 14 Python
利用Python画ROC曲线和AUC值计算
Sep 19 Python
Python实现的十进制小数与二进制小数相互转换功能
Oct 12 Python
tensorflow获取变量维度信息
Mar 10 Python
对Python字符串中的换行符和制表符介绍
May 03 Python
详解python3中用HTMLTestRunner.py报ImportError: No module named 'StringIO'如何解决
Aug 27 Python
Python Django框架模板渲染功能示例
Nov 08 Python
Django多数据库配置及逆向生成model教程
Mar 28 Python
python中wheel的用法整理
Jun 15 Python
详解在OpenCV中如何使用图像像素
Mar 03 Python
python 实现图片特效处理
Apr 03 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
为查询结果建立向后/向前按钮
2006/10/09 PHP
用PHP 快速生成 Flash 动画的方法
2007/03/06 PHP
php面向对象全攻略 (八)重载新的方法
2009/09/30 PHP
ThinkPHP中自定义错误页面和提示页面实例
2014/11/22 PHP
帝国CMS留言板回复后发送EMAIL通知客户
2015/07/06 PHP
php的api数据接口书写实例(推荐)
2016/09/22 PHP
How to Auto Include a Javascript File
2007/02/02 Javascript
JQuery 构建客户/服务分离的链接模型中Table中的排序分析
2010/01/22 Javascript
理解Javascript_08_函数对象
2010/10/15 Javascript
JQuery EasyUI 加载两次url的原因分析及解决方案
2014/08/18 Javascript
jQuery中unwrap()方法用法实例
2015/01/16 Javascript
JavaScript实现当网页加载完成后执行指定函数的方法
2015/03/21 Javascript
JavaScript之数组(Array)详解
2015/04/01 Javascript
jquery实现可点击伸缩与展开的菜单效果代码
2015/08/31 Javascript
angularjs 中$apply,$digest,$watch详解
2016/10/13 Javascript
微信小程序 setData使用方法及常用错误解决办法
2017/05/11 Javascript
bootstrap+jQuery 实现下拉菜单中复选框全选和全不选效果
2017/06/12 jQuery
nodeJS(express4.x)+vue(vue-cli)构建前后端分离实例(带跨域)
2017/07/05 NodeJs
webpack项目轻松混用css module的方法
2018/06/12 Javascript
webpack4 + react 搭建多页面应用示例
2018/08/03 Javascript
vue-cli 3.0 自定义vue.config.js文件,多页构建的方法
2018/09/19 Javascript
使用vue实现各类弹出框组件
2019/07/03 Javascript
vue实现在线翻译功能
2019/09/27 Javascript
JavaScript arguments.callee作用及替换方案详解
2020/09/02 Javascript
pygame库实现俄罗斯方块小游戏
2019/10/29 Python
Django ORM 查询表中某列字段值的方法
2020/04/30 Python
如何填写个人简历自我评价
2013/12/10 职场文书
社区七一党员活动方案
2014/01/25 职场文书
纺织工程专业个人求职信范文
2014/01/27 职场文书
学生自我鉴定格式及范文
2014/09/16 职场文书
新郎接新娘保证书
2015/05/08 职场文书
大学班长竞选稿
2015/11/20 职场文书
2016年小学“公民道德宣传日”活动总结
2016/04/01 职场文书
2019年家电促销广告语集锦
2019/10/21 职场文书
Nginx+SpringBoot实现负载均衡的示例
2021/03/31 Servers
go语言使用Casbin实现角色的权限控制
2021/06/26 Golang