2

エラーが発生する理由がまったくわかりません

Traceback (most recent call last):
  File ".../minimal.py", line 8, in <module>
    obj = Clazz([0], [[0], [0]], [[0]])
  File ".../minimal.py", line 5, in __init__
    self.c = c
AttributeError: 'list' object has no attribute 'c'

次のコードから

class Clazz(object):
    def __init__(self, a, b, c):
        self.a = a
        self,b = b
        self.c = c

if __name__ == "__main__":
    obj = Clazz([0], [[0], [0]], [0])

私だけが通過するとき

obj = Clazz([0], [0], [0])

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

Traceback (most recent call last):
  File ".../minimal.py", line 8, in <module>
    obj = Clazz([0], [[0], [0]], [0])
  File ".../minimal.py", line 4, in __init__
    self,b = b
ValueError: need more than 1 value to unpack

私はそれをグーグルで検索しようとしましたが、同様の問題はありませんでした。どうすればそれが起こりますか?これらのエラーの理由は何ですか?

4

1 に答える 1

4

ここにドットが必要.です:

self.b = b

これを渡すと:

obj = Clazz([0], [[1], [2]], [0])  #   self, b = [[1], [2]]

[1]あなたのコードは自分自身と[2]bに代入するので、実行するself.cと次のようになります:

AttributeError: 'list' object has no attribute 'c' 

2 番目のケースの場合:obj = Clazz([0], [1], [0])

self, b[1]2 つのアイテムが必要です。したがって、次のようになります。

ValueError: need more than 1 value to unpack
于 2013-06-14T06:31:34.253 に答える