最新公告
  • 欢迎您光临网站无忧模板网,本站秉承服务宗旨 履行“站长”责任,销售只是起点 服务永无止境!立即加入钻石VIP
  • callable怎样在python中判断类的调用?

    正文概述 小妮浅浅   2020-12-15   467

    callable怎样在python中判断类的调用?

    在python中除了调用函数外,另一项比较常见的调用就是类了。对于很多初学者来言,是不能分清楚这个类是否能被调用的。不过我们也可以通过callable()函数来帮助检验,根据callable输出结果的True或者False来进行判断。下面我们就来了解callable的基本说明和实例演练。

    1.说明

    callable() 是一个bool函数,可以确定一个对象是否可以通过操作符()来调用,如果函数可以调用,返回True,否则返回False

    注意类是callable的,因为调用类将会返回有一个新的实例。如果类的实例实现了__call__()方法,那么该实例也是callable的。

    2.参数

    object -- 对象

    3.返回值

    可调用返回 True,否则返回 False。

    4.实例

    # callable(object)
    # 如果参数 object 是可调用的就返回 True,否则返回 False。 如果返回 True,调用仍可能失败,但如果返回 False,则调用 object 将肯定不会成功。 请注意类是可调用的(调用类将返回一个新的实例);如果实例所属的类有 __call__() 则它就是可调用的。
    #
    # 3.2 新版功能: 这个函数一开始在 Python 3.0 被移除了,但在 Python 3.2 被重新加入。
     
    # # 如果参数 object 是可调用的就返回 True,否则返回 False。
    print(f'{ callable(callable) = }')
    def function():
        pass
    print(f'{ callable(function) = }')
    print(f'{ callable(123) = }')
    print(f'{ callable("test") = }')
    # 请注意类是可调用的(调用类将返回一个新的实例);
    print('--------')
    class C:
        pass
    print(f'{ callable(C) = }')
    # 如果实例所属的类有 __call__() 则它就是可调用的。
    print(f'{ callable(C()) = }')
    print('--------')
    class C:
        def __call__(self):
            return "test"
    print(f'{ callable(C()) = }')
    print(f'{ C()() = }')


    今天对于callable函数的学习到这里就结束了,相信小伙伴已经学会了判断类是否能被调用的方法,没事的时候可以勤加练习。


    下载网 » callable怎样在python中判断类的调用?

    常见问题FAQ

    免费下载或者VIP会员专享资源能否直接商用?
    本站所有资源版权均属于原作者所有,这里所提供资源均只能用于参考学习用,请勿直接商用。若由于商用引起版权纠纷,一切责任均由使用者承担。更多说明请参考 VIP介绍。
    提示下载完但解压或打开不了?
    最常见的情况是下载不完整: 可对比下载完压缩包的与网盘上的容量,若小于网盘提示的容量则是这个原因。这是浏览器下载的bug,建议用百度网盘软件或迅雷下载。若排除这种情况,可在对应资源底部留言,或 联络我们.。
    找不到素材资源介绍文章里的示例图片?
    对于PPT,KEY,Mockups,APP,网页模版等类型的素材,文章内用于介绍的图片通常并不包含在对应可供下载素材包内。这些相关商业图片需另外购买,且本站不负责(也没有办法)找到出处。 同样地一些字体文件也是这种情况,但部分素材会在素材包内有一份字体下载链接清单。
    模板不会安装或需要功能定制以及二次开发?
    请QQ联系我们

    发表评论

    还没有评论,快来抢沙发吧!

    如需帝国cms功能定制以及二次开发请联系我们

    联系作者

    请选择支付方式

    ×
    迅虎支付宝
    迅虎微信
    支付宝当面付
    余额支付
    ×
    微信扫码支付 0 元