什么是Python中的“可调用”? 如何在Python中安全地创建嵌套目录? 删除Python文件中的特定行 什么是Python中的“可调用”? 可调用是可以调用的任何东西。 所述内置的可调用(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 从Python的源代码object.c: /* Test whether an object can be called */ int PyCallable_Check(PyObject *x) { if (x == NULL) return 0; if (PyInstance_Check(x)) { PyObject *call = PyObject_GetAttrString(x, "__call__"); if (call == NULL) { PyErr_Clear(); return 0; } /* Could test recursively but don't, for fear of endless recursion if some joker sets self.__call__ = self */ Py_DECREF(call); return 1; } else { return x->ob_type->tp_call != NULL; } } 它说: 如果一个对象是某个类的实例,那么如果它具有call属性,则它是可调用的。 否则该对象x可以调用iff x->ob_type->tp_call != NULL 如何在Python中安全地创建嵌套目录? 删除Python文件中的特定行