ITPub博客

首页 > 数据库 > 数据库开发技术 > python面向对象编程篇(10):可调用对象__call__

python面向对象编程篇(10):可调用对象__call__

原创 数据库开发技术 作者:程序员小钟同学 时间:2021-03-16 18:00:38 0 删除 编辑

本文相关描述主要是个人的认知和见解,如有不当之处,还望各位大佬指正。

个人其他博客地址:

简书:https://www.jianshu.com/u/d6960089b087

掘金:https://juejin.cn/user/2963939079225608

小钟同学 | 文 【原创】| QQ:308711822

1 可调用对象定义

Python 中,可以将 () 直接应用到自身并执行的,都称为可调用对象,我们都可以统称为可调用对象。

通常如果我们需要判断我们的python对象是否能否调用,可以使用内置的 callable() 函数。

2 可调用对象几种

3 类实例也可以变成可调用对象的实践

从定义中可以知道,只要我们的可以把()加到对象上进行调用成功,那就说明它是一个可调用的对象。在Python 类中__call__()一个非常特殊的实例方法的功能类似于在类中重载 () 运算符,它可以我们的使得类实例对象可以像调用普通函数那样,以“对象名()”的形式进行调用。

如:

class Ape:
    # 定义__call__方法
    def __call__(self,name):
        print("调用__call__()方法",name)
a = Ape()
a("我是你大爷")

输出的结果为:

调用__call__()方法 我是你大爷

换另一种思路看其实就是我们的调用调用__call__的方法:

class Ape:
    # 定义__call__方法
    def __call__(self,name):
        print("调用__call__()方法",name)
a = Ape()
a.__call__("我是你大爷")

4 判断是否是一个可调用对象

class Ape:
    # 定义__call__方法
    def __call__(self,name):
        print("调用__call__()方法",name)
a = Ape()
print(callable(Ape()))
print(callable(a))
print(callable(a('是都是都')))

输出的结果为:

True
True
调用__call__()方法 是都是都
False


End

纯属个人实践中相关经验阐述总结,如有纰漏,还希望大佬们多多提点!小钟同学 | 文  【原创】| QQ:308711822


原文作者:程序员小钟同学;如有侵权,请联系管理员删除。

请登录后发表评论 登录
全部评论

注册时间:2021-02-20

  • 博文量
    224
  • 访问量
    111698