Python中怎样在list中保存class类型的数据

请看图片,自己对比吧,错误和不规范的地方有多处。Python中怎样在list中保存class类型的数据

上面的回复,没有仔细看提问者说的,刚才再仔细看了一下,问题在于字典你放在循环的外边。因为字典相同的key后面的值会覆盖前面的,所以你永远得到的是一样的,看下面的修改。Python中怎样在list中保存class类型的数据
【Python中怎样在list中保存class类型的数据】

■网友
简单回答下,python里面所有的变量都是引用。lst.append(data(dic)) 这句话,将dic作为创建实例的参数,里面把dic赋值给self.datasdic = {"姓名":"","年龄":0}这句话只执行一次,所以,所有创建的实例,里面的datas所指向的对象都是dic所指向的对象,所以打印起来都一样。增多点打印更好理解:def printdata(): print(self.data, id(self.data), id(self))修改方法1:class data(object): def __init__(self, name, age): self.datas = {\u0026#39;姓名\u0026#39;: name, \u0026#39;年龄\u0026#39;: age}修改方法2:lst = for name, age in library: lst.append(data({\u0026#39;姓名\u0026#39;: name, \u0026#39;年龄\u0026#39;: age}))


    推荐阅读