【发布时间】:2014-10-07 04:07:07
【问题描述】:
我总是在 Python 中听到这种说法(在传递函数时,例如装饰器等主题),但从未真正看到过对此的详细说明。
例如,是否可以创建一个类c,它只有一个抽象方法,该方法通过一组开括号和闭括号调用。
i.e class c:
@abstractmethod
def method_to_be_called_by():
...
所以你可以拥有
c(whatever parameters are required)
我的理解可能有点离题,我只是好奇人们的意思。
【问题讨论】:
-
c(...)通过调用__init__创建一个c类型的新对象。一旦你有了一个新对象,比如说x,调用x()调用c.__call__。 -
hmm,但是当你编写一个函数时,你不需要创建它的实例来使用它。不知道我错过了什么。
-
您不需要创建函数的实例。
c是一个类。 -
@user3684792:您也不必使用
int()或str()类型来创建整数;您也可以使用语法、字符串文字或 int 文字来创建它们。1创建一个int()类型的对象。与函数相同。 -
@hlt:实际上,每当您使用
def语句或lambda表达式时,Python 都会创建函数类型的实例。它只是透明的并由语法处理。
标签: python function class methods