2017-06-22 21 views
-1

私は、クラスを使うのではなく、むしろ新しいです。私はクラスの関数(つまりメソッド)と、メソッドのパラメータを使ってクラスの属性にアクセスする方法について苦労しています。Python:クラス、メソッド、パラメータの属性

私の目的は、一方で、インスタンスのリストにアクセスする方法(およびそこに含まれるインスタンス、yadda yadda)

を持つことです:戻り値なし

class dictclasser: 
    def __init__(self, attribute): 
     self.attribute = attribute 

    def printattr(self): 
     return self.attribute 




classcollection = [] 

while True: 
    attribute = input() 
    classcollection.append(dictclasser(attribute)) 
    for i in classcollection: 
     print(i.printattr()) 

が、すべてを返していない

class dictclasser: 
    def __init__(self, attribute): 
     self.attribute = attribute 

    def printattr(self): 
     self.printattr2() 

    def printattr2(self): 
     return self.attribute 


classcollection = [] 

while True: 
    attribute = input() 
    classcollection.append(dictclasser(attribute)) 
    for i in classcollection: 
     print(i.printattr()) 

意図されました。私はprintattrがインスタンス属性にアクセスできる理由を理解できず、printattr2はインスタンス属性にアクセスできません。私は無用に "類似の質問"をチェックしました。

ありがとうございます!

答えて

3

最初のprintattrに返信文がありませんでした。あなたのprintattr関数がreturn文がありません

def printattr(self): 
    return self.printattr2() 
1

printattrから以降printattr2の戻り値を伝播するためには、返された値を返すことがあります。

self.printattr2() 

return self.printattr2() 

に変更します
関連する問題