簡體   English   中英

Python:類,方法,參數屬性

[英]Python: Classes, Methods, Parameter Attributes

我對使用類很陌生。 我對類中的函數(即方法)以及如何通過方法參數訪問類屬性感到困惑。

我的目標是要有一種方法來訪問實例的列表(及其中包含的實例yadda yadda)

而:

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())

不返回

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())

按預期返回所有內容。 我無法弄清楚為什么printattr可以訪問實例屬性而printattr2無法訪問。 我已檢查“類似問題”,但無濟於事。

提前致謝!

因為您錯過了第一個printattr的return語句。 為了從printattr向前傳播printattr2的返回值,您必須返回返回值

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

您的printattr函數沒有return語句。 更改

self.printattr2() 

return self.printattr2()

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM