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中面向对象编程的相关知识
May 25 Python
Python的爬虫框架scrapy用21行代码写一个爬虫
Apr 24 Python
Pycharm在创建py文件时,自动添加文件头注释的实例
May 07 Python
对pandas将dataframe中某列按照条件赋值的实例讲解
Nov 29 Python
对python 生成拼接xml报文的示例详解
Dec 28 Python
详解python中list的使用
Mar 15 Python
Python基础之函数的定义与使用示例
Mar 23 Python
python实现猜数字游戏
Mar 25 Python
python线程定时器Timer实现原理解析
Nov 30 Python
Python爬虫实例——爬取美团美食数据
Jul 15 Python
python基于tkinter制作下班倒计时工具
Apr 28 Python
python 解决微分方程的操作(数值解法)
May 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 简单日历实现代码
2009/10/28 PHP
PHP中模拟链表和链表的基本操作示例
2016/02/27 PHP
解读PHP中上传文件的处理问题
2016/05/29 PHP
Laravel利用gulp如何构建前端资源详解
2018/06/03 PHP
[原创]IE view-source 无法查看看源码 JavaScript看网页源码
2009/07/19 Javascript
JavaScript onkeypress事件入门实例(按下或按住一个键盘按键)
2014/10/17 Javascript
微信小程序 教程之WXSS
2016/10/18 Javascript
利用yarn代替npm管理前端项目模块依赖的方法详解
2017/09/04 Javascript
解决在vue项目中,发版之后,背景图片报错,路径不对的问题
2018/03/06 Javascript
JS常用的几种数组遍历方式以及性能分析对比实例详解
2018/04/11 Javascript
如何自动化部署项目?折腾服务器之旅~
2019/04/16 Javascript
Vue实现微信支付功能遇到的坑
2019/06/05 Javascript
Angular.JS读取数据库数据调用完整实例
2019/07/02 Javascript
Javascript前端下载后台传来的文件流代码实例
2020/08/18 Javascript
vue 动态组件(component :is) 和 dom元素限制(is)用法说明
2020/09/04 Javascript
js canvas实现俄罗斯方块
2020/10/11 Javascript
使用python搭建Django应用程序步骤及版本冲突问题解决
2013/11/19 Python
Python StringIO模块实现在内存缓冲区中读写数据
2015/04/08 Python
Python时间戳使用和相互转换详解
2017/12/11 Python
Numpy中的mask的使用
2018/07/21 Python
Python计算两个矩形重合面积代码实例
2019/09/16 Python
基于python3生成标签云代码解析
2020/02/18 Python
使用Python实现批量ping操作方法
2020/05/06 Python
python 模拟登陆github的示例
2020/12/04 Python
手机配件第一品牌:ZAGG
2017/05/28 全球购物
TUMI新加坡官网:国际领先的商旅箱包品牌
2019/01/12 全球购物
亿阳信通股份有限公司C#笔试题
2016/12/06 面试题
中医药大学市场营销专业自荐信
2013/09/29 职场文书
中学运动会广播稿
2014/01/19 职场文书
保安部任务及岗位职责
2014/02/25 职场文书
生物科学专业自荐书
2014/06/20 职场文书
心灵捕手观后感
2015/06/02 职场文书
欠条范文
2015/07/03 职场文书
新教师教学工作总结
2015/08/14 职场文书
毕业季聚会祝酒词!
2019/07/04 职场文书
mysql使用instr达到in(字符串)的效果
2022/04/03 MySQL