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发送伪造的arp请求
Jan 09 Python
Python判断Abundant Number的方法
Jun 15 Python
python ansible服务及剧本编写
Dec 29 Python
Python3实现将本地JSON大数据文件写入MySQL数据库的方法
Jun 13 Python
python将list转为matrix的方法
Dec 12 Python
浅谈Pandas Series 和 Numpy array中的相同点
Jun 28 Python
Python简单处理坐标排序问题示例
Jul 11 Python
sklearn-SVC实现与类参数详解
Dec 10 Python
python中图像通道分离与合并实例
Jan 17 Python
python继承threading.Thread实现有返回值的子类实例
May 02 Python
python 通过使用Yolact训练数据集
Apr 06 Python
pd.drop_duplicates删除重复行的方法实现
Jun 16 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 循环列出目录内容的函数代码
2010/05/26 PHP
浅析get与post的一些特殊情况
2014/07/28 PHP
thinkphp获取栏目和文章当前位置的方法
2014/10/29 PHP
在Mac OS的PHP环境下安装配置MemCache的全过程解析
2016/02/15 PHP
PHP文件及文件夹操作之创建、删除、移动、复制
2016/07/13 PHP
Bootstrap实现导航栏的2种方式
2016/11/28 Javascript
前端JS面试中常见的算法问题总结
2016/12/23 Javascript
JavaScript基础之AJAX简单的小demo
2017/01/29 Javascript
详解使用vue-router进行页面切换时滚动条位置与滚动监听事件
2017/03/08 Javascript
详解VueJs异步动态加载块
2017/03/09 Javascript
详解在vue-cli中引用jQuery、bootstrap以及使用sass、less编写css
2017/11/08 jQuery
Vue 2.5.2下axios + express 本地请求404的解决方法
2018/02/21 Javascript
JavaScript实现的简单加密解密操作示例
2018/06/01 Javascript
node.js自动上传ftp的脚本分享
2018/06/16 Javascript
微信小程序点击列表跳转到对应详情页过程解析
2019/09/26 Javascript
微信小程序实现按字母排列选择城市功能
2019/11/25 Javascript
js回调函数仿360开机
2019/12/26 Javascript
详解Nuxt内导航栏的两种实现方式
2020/04/16 Javascript
Python列表推导式、字典推导式与集合推导式用法实例分析
2018/02/07 Python
python print 按逗号或空格分隔的方法
2018/05/02 Python
Python + selenium自动化环境搭建的完整步骤
2018/05/19 Python
Numpy截取指定范围内的数据方法
2018/11/14 Python
pyqt5 从本地选择图片 并显示在label上的实例
2019/06/13 Python
python交互模式下输入换行/输入多行命令的方法
2019/07/02 Python
Python使用grequests(gevent+requests)并发发送请求过程解析
2019/09/25 Python
django models里数据表插入数据id自增操作
2020/07/15 Python
python3定位并识别图片验证码实现自动登录功能
2021/01/29 Python
CSS3 实用技巧:实现黑白图像效果示例代码
2013/07/11 HTML / CSS
文秘专业大学生求职信
2013/11/10 职场文书
小学生学雷锋演讲稿
2014/04/25 职场文书
药品开票员岗位职责
2015/04/15 职场文书
交通事故被告代理词
2015/05/23 职场文书
2016年优秀共青团员事迹材料
2016/02/25 职场文书
2019最新校园运动会广播稿!
2019/06/28 职场文书
python 实现德洛内三角剖分的操作
2021/04/22 Python
mysql5.7的安装及Navicate长久免费使用的实现过程
2021/11/17 MySQL