我的问题似乎很愚蠢。但是,我想知道Python中是否有一种方法可以使Class本身可调用。不,我不是在说使类实例可调用。我说的是这样的:
class Foo:
def __call__(value):
return do_something_with(value)
#note I didn't use self because I want the class itself to be callable, not an instance of it
a = Foo(some_random_value)
但这似乎不起作用。那么,有什么方法可以做到吗,或者用Python不可能做到吗?
答案 0 :(得分:0)
如上所述,对于所有可能的用例,这是一个非常糟糕的主意,请不要这样做! (小狗会死!)
class Foo:
def __new__(self, value):
return Foo.__call__(value)
@classmethod
def __call__(cls, value):
return f'processed {value}'
print(Foo(42))
输出:
processed 42