Python:类,方法,参数属性

时间:2017-06-22 22:37:57

标签: python class

我对使用类很新。我在使用类中的函数(即方法)以及如何通过方法参数访问类属性。

我的目标是让一个方法访问一个实例的列表(以及其中包含的实例,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可以访问instances属性而printattr2不能。我已检查过#34;类似问题"无济于事。

提前致谢!

2 个答案:

答案 0 :(得分:3)

因为你错过了第一个printattr中的return语句。要从printattr2向前传播printattr的返回值,您必须返回返回的值

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

答案 1 :(得分:1)

您的printattr函数没有return语句。改变

self.printattr2() 

return self.printattr2()