9
class Domin():
    def __init__(self , a, b) :
        self.a=a , self.b=b

    def where(self):
        print 'face : ' , self.a , "face : " ,self.b

    def value(self):
        print self.a + self.b

d1=Domin(1 , 5)   

d1=Domin(20 , 15)

次のエラーが表示されます。

Traceback (most recent call last):
  File "test2.py", line 13, in <module>
    d1=Domin(1 , 5)
  File "test2.py", line 5, in __init__
    self.a=a , self.b=b
TypeError: 'int' object is not iterable
4

1 に答える 1

28

このように 1 行に 2 つのステートメントを入れることはできません。あなたのコードは次のように評価されています:

self.a = (a, self.b) = b

セミコロンを使用するか (考え直して、そうしないでください):

self.a = a; self.b = b

または、シーケンスのアンパックを使用します:

self.a, self.b = a, b

または、次のように 2 行に分割します。

self.a = a
self.b = b

私はそれを最後の方法で行います。

于 2013-05-25T07:56:50.607 に答える