2016-11-03 12 views
0
class obj: 
    def __init__(self, a): 
     self.a = a 
class obj2 : 
    def __init__(self, a): 
     self.a = a 

pList = [obj(1),obj(2),obj(3),obj(4),obj(5)] 
list = [] 

for i in pList: 
    obj2(i.a) 
    list.append(obj2) 

for i in list : 
    print(i.a) 

こんにちは。私のpython newBie。私はこのコードを持っていますが、動作しません。
は私を教えてください..あなたは、あなたがリストに作成obj2のインスタンスを捨てるので、あなたこのシンプルなpythonコードは、なぜそれは動作しませんか?

Traceback (most recent call last): 
    File "D:/..py", line 18, in <module> 
    print(i.a) 
AttributeError: type object 'obj2' has no attribute 'a' 

Process finished with exit code 1 
+2

あなたはクラスをインスタンスと混合しています。あなたの変数に 'list'を使わないでください。そしてあなたのファイルを '..py'と呼んではいけません。 –

答えて

9

に感謝して、クラス自身を追加します。それは次のようになります。

for i in pList: 
    o2 = obj2(i.a) 
    list.append(o2) 

注意あなたがあなたのクラスのObjとOBJ2を呼び出し、標準の命名規則を使用した場合、これはより明白であろうと。

+0

ダニエルありがとう! –

関連する問題