python – 什么是“可调用”?

现在很清楚what a metaclass is,我总是使用一个相关的概念而不知道它的真正含义.

我想每个人都用括号做错了,导致“对象不可调用”异常.更重要的是,使用__init__和__new__会想知道这个血腥的__call__可以用于什么.

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

解决方法:

可调用是可以调用的任何东西.

built-in callable (PyCallable_Check in objects.c)检查参数是否为:

>带有__call__方法或类的类的实例
>是一个具有非null tp_call(c struct)成员的类型,否则表示可调用性(例如在函数,方法等中)

名为__call__的方法是(according to the documentation)

Called when the instance is ”called” as a function

class Foo:
  def __call__(self):
    print 'called'

foo_instance = Foo()
foo_instance() #this is calling the __call__ method
上一篇:线程


下一篇:java – 可调用线程与可运行线程与扩展线程