繁体   English   中英

附加来自Class实例的列表

[英]Append a list from Class instance

我试图通过使用实例读取值来附加列表,

class Class_Name:
    def __init__(self,input):
        self.input = input
        self.mylist = []
        input.mylist.append(self)

if __name__ == "__main__":
    val1 = Class_Name("Value_1")
    val2 = Class_Name("Value_2")
print(mylist)

但这给我错误

AttributeError: 'str' object has no attribute 'mylist'

我在这里做错了什么? 如何打印mylist与值['Value_1','Value_2']

您必须使用类变量来获取跨实例共享的变量。 使用下面的代码获得所需的内容。

class Class_Name:
    mylist = []
    def __init__(self,input):
        self.input = input
        Class_Name.mylist.append(input)

if __name__ == "__main__":
    val1 = Class_Name("Value_1")
    val2 = Class_Name("Value_2")
print(Class_Name.mylist)

使用extend而不是append将更多条目添加到__init__ mylist中,并在main中调用instance_name.mylist来打印列表。

像这样:

class Class_Name:
    def __init__(self, input1, input2):
        self.mylist = []
        self.mylist.extend([input1, input2])

if __name__ == "__main__":
    val1 = Class_Name("Value_1", "Value_2")
    print(val1.mylist)

# ['Value_1', 'Value_2']

__init__上的第一次初始化类的input参数是Value_1 ,第二次初始化是Value_2 但是,字符串没有append方法,因此当您假设input参数是列表时,它会失败。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM