2016-04-15 17 views
1

更新された初期化された変数にPythonメソッドで同じクラスの別のPythonメソッドにアクセスしようとしています。以下は私のサンプルコードブ​​ロックです。別のPython関数からPython関数で更新された変数を取得するには?

class test(object): 
    def __init__(self): 
     self.a = [] 

    def test1(self): 
     self.a = [1,2,3,4,5] 
     print ("Output of test1 #", self.a) 

    def test2(self): 
     print ("Output of test2 #",self.a) 
test().test1() 
test().test2() 

Output # Output of test1 # [1, 2, 3, 4, 5] 
     Output of test2 # [] 

私の理解では、私は__のinit __(自己)セクションに変数を初期化するならば、私はクラスのメソッドから同じ変数を更新し、同じクラスの別のメソッドから同じ変数にアクセスすることができます。私の理解が間違っているなら、私を訂正してください。

+0

"同じクラスの別のモジュールから同じ変数にアクセスしてください。" 「同じクラスの別のインスタンス*から同じ変数にアクセスする」という意味ですか?あるいは、あなたが意味することを誤解しています。 – Evert

+1

ここでは、 'test'の2つの異なる*インスタンスを作成しています。代わりに 't = test(); t.test1(); t.test2()はあなたが望むことをします。 [(Python)classes](https://docs.python.org/2/tutorial/classes.html)でもう少し詳しいことがあります。 – Evert

答えて

4

moduleの代わりに、希望の単語はmethodです。

あなたの理解はなく、唯一の同じインスタンスについて、正しいです - あなたは2つのインスタンス作成されています。

test().test1() 
# ^- just created a new instance of test 
test().test2() 
# ^- just created another, different instance of test 

があなたの代わりに欲しい:そのため、テストの

test_instance = test() 
test_instance.test1() 
test_instance.test2() 
関連する問題