class Student:
name = ''
score = []
def __init__(self):
pass
def main():
all = []
all.append(Student())
all.append(Student())
all[0].name = 'YYY'
all[1].name = 'XXX'
all[0].score.append(75)
all[1].score.append(85)
print(all[0].score, all[1].score)
if __name__ == "__main__":
main()
为什么print出来的是([75, 85], [75, 85]),数据被同时修改了。 请问如何让变量指向不同的地址?即我希望得到([75],[85])
不要把score和name定义类属性,而是要定义为对象属性,即:
class Student:
def __init__(self):
self.score=[]
self.name=''
就可以了
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。