最近工作在调试python脚本时由于不太懂原理,被一个疑惑卡了一会
回到家复现了一下当时的情况,举个栗子说明:
目的是创建student对象时用多个hobby对象填充student的成员hobbies的元素
为了看清楚点 没使用循环
结果却成了这样,所有对象的hobbies成员都长成一样的了,而且追加了所有元素
然后做了一个尝试,在初始化时append前每次都置空
这样输出的结果符合预期
但是为什么呢?最近才开始接触python不久,没有系统了解过这里面的思想,所以不懂就问了
于是不死心的我又试了另一个清空list的方法,
可以看到,第二次的赋值结果实际上覆盖了第一个对象的hobbies,结果不符合预期
这又是为什么呢?百度了一下看到clear()能够清空所有已赋值过的变量?
这两个操作看起来这个List在类成员中,影响范围不仅仅在本对象吗?