2017-07-20 9 views
3

私は、サービス関数がどこかで定義されているクラスメソッドでサービス関数を使用したいと考えています。私は動的になりたいので、さまざまな状況で異なる機能を定義することができます。私はこれを試してみた:関数をクラスに移動する方法は? Python

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)

それを動作させるためにどのように任意のアイデア?

答えて

6

あなたはコールを使用することができます

def print_a(): 
    print 'a' 

class A: 

    func = print_a.__call__ 

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

A.apply() 

出力

a 
関連する問題