Python-什么是“可呼叫”?

发布于 2021-02-02 23:20:51

现在很清楚什么是元类,有一个相关的概念我一直都在使用,而并不知道它的真正含义。

我想每个人都在括号里犯了一个错误,导致了“对象不可调用”异常。而且,使用__init____new__导致怀疑这种血腥的__call__用途。

您能给我一些解释,包括魔术方法的例子吗?

关注者
0
被浏览
203
1 个回答
  • 面试哥
    面试哥 2021-02-02
    为面试而生,有面试问题,就找面试哥。

    可调用对象是可以调用的任何东西。

    所述内置的可调用(PyCallable_Check在objects.c)检查该参数可以是:

    具有__call__方法的类的实例或
    是具有非null tp_call(c struct)成员的类型,该成员以其他方式指示可调用性(例如在函数,方法等中)
    命名的方法__call__是(根据文档)

    当实例被“调用”为函数时调用

    class Foo:
      def __call__(self):
        print 'called'
    
    foo_instance = Foo()
    foo_instance() #this is calling the __call__ method
    


知识点
面圈网VIP题库

面圈网VIP题库全新上线,海量真题题库资源。 90大类考试,超10万份考试真题开放下载啦

去下载看看