[英]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.