2016-08-24 9 views
-4

以下は私が書いた単純なPython 2.6のコードです。私はなぜ出力にゼロ(0)が返されるのか不思議ですが、コードは期待通りに機能しますか?なぜこのコードはゼロを返しますか?

ありがとうございました!

class One(object): 
    def __init__(self): 
     self.A = 0 

    def Two(self, *args): 
     for x in args: 
      if x == 1: 
       print x 
     return self 

    def answer(self): 
     print (self.A) 

ABC = One() 
ABC.Two(1, 1, 9, 0, 7).answer() 

あなたは違っそれを書く場合

1 
1 
0 
Process finished with exit code 0 
+3

'self.A'は0ですか? 'answer()'は 'self.A'を出力しています – Li357

+4

' answer() 'は' self.A'を表示するので、 '__init__'で0に初期化され、決して変更されません。 – zondo

+0

終了コード0のメッセージを聞いていますか? – Barmar

答えて

1

OUTPUTは、たぶん、あなたは何が起こっているかを理解します:

class One(object): 

    def __init__(self): 
     self.A = 0 

    def Two(self, *args): 
     for x in args: 
      if x == 1: 
       print x 
     return self 

    def answer(self): 
     print(self.A) 

ABC = One() 
ABC.Two(1, 1, 9, 0, 7) 
print '-' * 80 
ABC.answer() 

あなたが見ることができるように、この方法answerです1つはゼロではなく、メソッドではありませんTwo

+0

ありがとう、私はそれを書き直し、それは今意味があります。 –

+0

@LemonTigerあなたが幸いです、ここでstackoverflowの誰かに感謝する最善の方法は、あなたを最も助けた答えを検証しています。また、downvotesに悩まされないでください...いずれにしても、この[link](http://stackoverflow.com/help/how-to-ask)は次回に再度お尋ねする際に役立ちます。ようこそ – BPL

関連する問題