首 页IT知识库翔宇问吧收藏内容
当前位置:算搜IT乐园IT知识库Python

Python callable()函数

减小字体增大字体作者:本站  来源:本站整理  发布时间:2021-08-13 08:31:47

callable()函数是Python的一个内置函数。该函数判断一个对象是否可被调用,如果传递给该函数的对象可被调用,则返回True,否则返回False。在实际中,即使该函数返回True,也有可能在调用该对象时会失败,当然,若该函数返回的是False,在调用该对象时绝对不会成功。

在Python类中如果定义了__call__()方法,则该类的实例是可调用的。

通俗地讲,一般情况下用户定义的方法/函数是可以调用的,但类的实例一般不能按照方法/函数的形式来调用,但如果类的内部实现了__call__()方法,则该类的实例可以按照方法/函数的形式来调用。

注意:callable()函数在Python 3.0版本中被移除,又再3.2版本中重新添加了回来。

callable()函数语法格式

callable(object)

参数

object:要判断的对象或实例。

返回值

该函数的返回值是一个布尔值:TrueFalse.

Python callable()函数

下面使用几个实例来讲解callable()方法的具体使用方法。

1、返回值为True的情况

#函数
deffun():
    print("调用fun()函数")

#创建一个对象
fun1 = fun

classtest:
    def__call__(self*args**kwargs):
        print("定义了__call__()方法")

#创建类的实例
test_obj = test()

print("fun is callable?"callable(fun))
print("fun1 is callable? "callable(fun1))
print("test is callable? "callable(test))
print("test_obj is callable? "callable(test_obj))

#调用试试
fun()
fun1()
test()
test_obj()

输出结果:

fun is callable? True
fun1 is callable? True
test is callable? True
test_obj is callable? True
调用fun()函数
调用fun()函数
定义了__call__()方法

在上面的例子中,我们首先定义了一个函数fun(),然后定义了fun()函数的一个引用对象fun1;其次定义了一个类Test和类的一个实例test_obj,在类Test中实现了__call__()函数;最后测试函数fun()、函数的引用fun1、类和类的对象test_obj的可调用性。从结果可以看出四个对象的callable()函数返回值都是True,并且调用都获得了成功。

一般情况,在对象的可访问范围内,类和方法/函数本身总是可以调用的,但类的实例在未定义__call__()函数时则不能被调用。

2、返回值为False的情况

下面的例子演示了callable()函数返回False的几种情况:

n = 123
s = 'suansuo.cn'
lst = ['R' 'Python''SPSS']
t = ('优雅的代码订阅号''翔宇亭')
d ={'K1':'V1''K2':'V2'}

classStudent:
    sid = 0
    def__init__(selfsid):
        self.sid = sid

stu = Student('001')

print("n is callable?"callable(n))
print("s is callable?"callable(s))
print('列表对象可调用?'callable(lst))
print('元组对象可调用?'callable(t))
print('字典对象可调用?'callable(d))
print('stu is callable?' callable(stu))

输出结果如下:

n is callable? False
s is callable? False
列表对象可调用? False
元组对象可调用? False
字典对象可调用? False
stu is callable? False

从上面的例子中可以得出:数值变量、列表对象、元组对象、字典对象等是不可调用的,这显而易见,且这种调用也没有实际意义的;类中未实现__call__()方法,类的实例也是不能调用的。

总结

callable()方法主要在程序中调用某个对象时而预防出错设置的函数。用户在调用某个对象前,预先使用callable()方法判断其可调用性而避免出现TypeError错误。


如需转载请注明出处:算搜IT乐园(http://www.suansuo.cn),并给出本文链接地址:

http://www.suansuo.cn/article/python/2021/6535.html

微信搜索“优雅的代码”关注本站的公众号,或直接使用微信扫描下面二维码关注本站公众号,以获取最新内容。

个人成长离不开各位的关注,你的关注就是我继续前行的动力。

知识评论评论内容只代表网友观点,与本站立场无关!

   评论摘要(共 0 条,得分 0 分,平均 0 分) 查看完整评论
愿您的精彩评论引起共鸣,带来思考和价值。
用户名:查看更多评论
分 值:100分 90分 80分 70分 60分 40分 20分
内 容:
验证码:
关于本站 | 网站帮助 | 广告合作 | 网站声明 | 友情连接 | 网站地图
本站部分内容来自互联网,如有侵权,请来信告之,谢谢!
Copyright © 2007-2021 suansuo.cn. All Rights Reserved.
外债负债率怎么算,女,25岁,负债3万,工作不稳定,如何规划以后的道路?_测枞股票网分时成交量怎么看,如何从成交量,换手率,当日K线路径,内外盘之间的关系看出庄家出货或骗散户来接盘?_策爪股票网筹码多峰形态,筹码分布怎么看主力成本?这几种形态已经说明了一切,掌握跟庄吃肉行情不错过_测啷股票网大盘指数3000点高不高,十年上证还是3000点,谁能代表过去A股的真实变化?_厕坑股票网股票基金怎么计算每日盈亏,买十万块钱基金,一年大概会收入多少?_测浙股票网股本是负债吗,定向增发后公司市值会按照新增股本成比例放大,因为股价是没变的。那净资产怎么变呢?_测锃股票网科创板知识问答答案,科创板行情一般看道科创?_侧标股票网零售行业印花税怎么算,购销合同的印花税计税额是否含税_厕脏股票网影响股票发行价格的因素,为什么股票会有涨跌,股票涨与跌的根源是什么?_策寨股票网选股的六大指标,广东操盘手点评MACD指标实战技巧!(附选股公式)_册售股票网外资股票有哪些,外资爆买白马三只A股:刺激!还有哪些公司被盯上?_册了股票网3个人的股份怎么划分,企业的分类标准有哪些?具体如何分类的?股东分红是按什么分配,如何规划股东分红?税前利润计算公式,初级会计考试常用的18个公式物流行业利润率,现在还能加盟物流行业吗?越南股市规模,2022年股市如何走?有哪些投资建议和注意事项?租赁负债的名词解释,金融专业考研选择暨大还是华南理工大学?市盈率4千多的股票能买吗,什么叫股票的市盈率?基本薪酬名词解释,请问教育学考研名词解释没有答成一段得分吗?市盈率参考标准,怎样去分析上市公司的市盈率 ?市净率越高越好,什么是估值,详解市盈率和市净率。红筹股不属于外资股吗,金融100问:什么是蓝筹股和红筹股?自益权名词解释,怎样理解自然资源确权,有何意义?预期市盈率通常基于,市盈率的估值一般几倍?市盈率动和静,全职操盘手从事十年经验:风险的规避在于概率的分析!收集动态市盈率与静态市盈率的关系是什么,如何理解市盈率,市净率以及市梦率的关系?市净率指的是什么,市盈率,市净率学习总结立峰擒牛6线指标源码,《神奇波段》之寻找波段起点的实用指标(指标分享)庄家为什么要封跌停板,庄家出货为什么砸盘到跌停才出货呢?我整整读了10遍,太透彻了涨停板封不住尾盘砸盘第二天走势,今天基建板块多只股票涨停,但封不住,分时很折磨人,到14:57涨停的股集体打开跳水下跌8个点,为什么?