Python:使类本身可调用

时间:2019-07-09 06:42:02

标签: python class

我的问题似乎很愚蠢。但是,我想知道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不可能做到吗?

1 个答案:

答案 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