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基础教程之序列详解
Aug 29 Python
跟老齐学Python之从if开始语句的征程
Sep 14 Python
Python编程中运用闭包时所需要注意的一些地方
May 02 Python
使用Python进行二进制文件读写的简单方法(推荐)
Sep 12 Python
使用Python对Excel进行读写操作
Mar 30 Python
python面向对象多线程爬虫爬取搜狐页面的实例代码
May 31 Python
python numpy 常用随机数的产生方法的实现
Aug 21 Python
python重要函数eval多种用法解析
Jan 14 Python
实例讲解Python 迭代器与生成器
Jul 08 Python
Matplotlib中rcParams使用方法
Jan 05 Python
Django后端按照日期查询的方法教程
Feb 28 Python
Python基础 括号()[]{}的详解
Nov 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 children()函数讲解
2019/02/03 PHP
面向对象的Javascript之二(接口实现介绍)
2012/01/27 Javascript
js获取电脑分辨率的思路及操作
2013/11/22 Javascript
JS实现根据出生年月计算年龄
2014/01/10 Javascript
JavaScript设计模式之原型模式(Object.create与prototype)介绍
2014/12/28 Javascript
JQuery radio(单选按钮)操作方法汇总
2015/04/15 Javascript
js实现选中复选框文字变色的方法
2015/08/14 Javascript
JS实现选项卡实例详解
2015/11/17 Javascript
javascript实现加载xml文件的方法
2015/11/24 Javascript
javascript表单事件处理方法详解
2016/05/15 Javascript
浅谈jquery的map()和each()方法
2016/06/12 Javascript
微信小程序实现列表下拉刷新上拉加载
2020/07/29 Javascript
小程序点赞收藏功能的实现代码示例
2018/09/07 Javascript
微信小程序上传多图到服务器并获取返回的路径
2019/05/05 Javascript
JavaScript实现瀑布流布局的3种方式
2020/12/27 Javascript
[40:27]完美世界DOTA2联赛PWL S3 PXG vs GXR 第一场 12.19
2020/12/24 DOTA
使用python解析xml成对应的html示例分享
2014/04/02 Python
Python基于PyGraphics包实现图片截取功能的方法
2017/12/21 Python
Python pymongo模块用法示例
2018/03/31 Python
python基础教程项目五之虚拟茶话会
2018/04/02 Python
基于python list对象中嵌套元组使用sort时的排序方法
2018/04/18 Python
Python3使用正则表达式爬取内涵段子示例
2018/04/22 Python
Django REST framework视图的用法
2019/01/16 Python
在python中利用dict转json按输入顺序输出内容方式
2020/02/27 Python
梵蒂冈和罗马卡:Omnia Card Pass
2018/02/10 全球购物
美国最大的高尔夫发球时间预订网站:TeeOff.com
2018/03/28 全球购物
狼和鹿教学反思
2014/02/05 职场文书
离婚协议书应该怎么写
2014/10/12 职场文书
离退休人员聘用协议书
2014/11/24 职场文书
财务部会计岗位职责
2015/02/03 职场文书
团员个人总结
2015/02/26 职场文书
求职简历自我评价怎么写
2015/03/10 职场文书
毕业生自荐求职信书写的技巧
2019/08/26 职场文书
两行代码解决Jupyter Notebook中文不能显示的问题
2021/04/24 Python
使用Pytorch训练two-head网络的操作
2021/05/28 Python
win11如何查看端口是否被占用? Win11查看端口是否占用的技巧
2022/04/05 数码科技