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用UUID库生成唯一ID的方法示例
Dec 15 Python
利用python批量给云主机配置安全组的方法教程
Jun 21 Python
Django admin美化插件suit使用示例
Dec 12 Python
python实现感知器
Dec 19 Python
解决Python中list里的中文输出到html模板里的问题
Dec 17 Python
Pycharm使用之设置代码字体大小和颜色主题的教程
Jul 12 Python
python线程的几种创建方式详解
Aug 29 Python
flask的orm框架SQLAlchemy查询实现解析
Dec 12 Python
pytorch 状态字典:state_dict使用详解
Jan 17 Python
Python2.7:使用Pyhook模块监听鼠标键盘事件-获取坐标实例
Mar 14 Python
vscode写python时的代码错误提醒和自动格式化的方法
May 07 Python
Python内置类型集合set和frozenset的使用详解
Apr 26 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边学边教》(04.编写简易的通讯录――视频教程1)
2006/12/13 PHP
解决dede生成静态页和动态页转换的一些问题,及火车采集入库生成动态的办法
2007/03/29 PHP
PHP中函数rand和mt_rand的区别比较
2012/12/26 PHP
destoon会员注册提示“数据校验失败(2)”解决方法
2014/06/21 PHP
微信公众号模板消息群发php代码示例
2016/12/29 PHP
JavaScript 获取用户客户端操作系统版本
2009/08/25 Javascript
JavaScript使用cookie记录临时访客信息的方法
2015/04/07 Javascript
介绍JavaScript中Math.abs()方法的使用
2015/06/14 Javascript
JS使用cookie实现DIV提示框只显示一次的方法
2015/11/05 Javascript
jquery中validate与form插件提交的方式小结
2016/03/26 Javascript
javascript实现平滑无缝滚动
2020/08/09 Javascript
JavaScript中匿名函数的用法及优缺点详解
2016/06/01 Javascript
angular ng-click防止重复提交实例
2017/06/16 Javascript
移动端触摸滑动插件swiper使用方法详解
2017/08/11 Javascript
jQuery动态添加.active 实现导航效果代码思路详解
2017/08/29 jQuery
js实现图片上传并预览功能
2018/08/06 Javascript
javascript中floor使用方法总结
2019/02/02 Javascript
jQuery层叠选择器用法实例分析
2019/06/28 jQuery
layui异步加载table表中某一列数据的例子
2019/09/16 Javascript
使用AutoJs实现微信抢红包的代码
2020/12/31 Javascript
Python文件读取的3种方法及路径转义
2015/06/21 Python
在Django的session中使用User对象的方法
2015/07/23 Python
Pandas读取并修改excel的示例代码
2019/02/17 Python
解决python3.5 正常安装 却不能直接使用Tkinter包的问题
2019/02/22 Python
Python实现京东秒杀功能代码
2019/05/16 Python
Django实现文件上传和下载功能
2019/10/06 Python
美国一家全面的在线零售鞋类公司:SHOEBACCA
2017/01/06 全球购物
Python面试题:Python里面如何生成随机数
2015/03/12 面试题
毕业生机械建模求职信
2013/10/14 职场文书
求职信的最佳写作思路
2014/02/01 职场文书
晚自修旷课检讨书怎么写
2014/11/17 职场文书
2014年防汛工作总结
2014/12/08 职场文书
教育读书笔记
2015/07/02 职场文书
golang goroutine顺序输出方式
2021/04/29 Golang
Python 实现绘制子图及子图刻度的变换等问题
2021/05/31 Python
SQL SERVER中的流程控制语句
2022/05/25 SQL Server