如何将功能移到课堂?蟒

时间:2017-07-20 10:22:32

标签: python class-attributes

我想在classmethod中使用服务函数,其中服务函数在其他地方定义。我希望是动态的,所以我可以在不同的情况下定义不同的功能。我试过这个:

def print_a():
    print 'a'

class A:
    func = print_a
    @classmethod
    def apply(cls):
        cls.func()

A.apply()

然而我收到了这个错误:

unbound method print_a() must be called with A instance as first argument (got nothing instead)

任何想法如何使其发挥作用?

1 个答案:

答案 0 :(得分:6)

您可以使用致电

def print_a():
    print 'a'

class A:

    func = print_a.__call__

    @classmethod
    def apply(cls):
        cls.func()

A.apply()

<强>输出

a