2011-12-16 4 views
0

pythonでクラスメソッドをコンストラクタから呼び出す可能性はありますか?Pythonでは、クラスメソッドをコンストラクタから呼び出す可能性はありますか?

私はクラス内にメソッドを持ち、新しい要素を作成しているときにメソッドを呼びたいと思っています。

可能ですか?

def __init__(self, val1, val2): 
    if (val1 == 5) and (val2 == 2): 
     function5_2(self) 

    def function5_2(self):     
     (arguments) 
+1

あなたは何をしようとしているのか、なぜうまくいかないのかのサンプルコードを提供できますか? – tpg2114

答えて

4

はい、あなたがそれを行うことができます。

class Foo(object): 

    def __init__(self, a): 
     self.a = a 
     self.cls_method() 

    @classmethod 
    def cls_method(cls): 
     print 'class %s' % cls.__name__ 

出力:

class Foo 
+0

ありがとう、私は '自己を忘れました。 – user1081715

+0

@ user1081715:あなたは大歓迎です:) – mouad

2

はい、そうです。次に、コンストラクタから呼び出されるクラスメソッドの例を示します。

class C(object): 

    def __init__(self): 
    C.func() 

    @classmethod 
    def func(cls): 
    print 'func() called' 

C() 
関連する問題