不懂就问,python类初始化时遇到的问题

最近工作在调试python脚本时由于不太懂原理,被一个疑惑卡了一会

回到家复现了一下当时的情况,举个栗子说明:

目的是创建student对象时用多个hobby对象填充student的成员hobbies的元素

为了看清楚点 没使用循环

结果却成了这样,所有对象的hobbies成员都长成一样的了,而且追加了所有元素

然后做了一个尝试,在初始化时append前每次都置空

这样输出的结果符合预期

但是为什么呢?最近才开始接触python不久,没有系统了解过这里面的思想,所以不懂就问了

于是不死心的我又试了另一个清空list的方法,

可以看到,第二次的赋值结果实际上覆盖了第一个对象的hobbies,结果不符合预期

 

这又是为什么呢?百度了一下看到clear()能够清空所有已赋值过的变量?

 

这两个操作看起来这个List在类成员中,影响范围不仅仅在本对象吗?

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值