![](/img/trans.png)
[英]Classes and methods in Python (methods and attributes separated by definitions)
[英]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.