- 可变对象创建后可改变但地址不会改变,即变量指向的还是原来的变量.
- 不可变对象创建之后便不能改变,如果改变则会指向一个新的对象。
-
None
在python里面是个单例对象 -
dict
、list
是可变对象,str
、int
、tuple
、float
是不可变对象。 不可变对象
列表的操作
变量c是对b的切片操作的返回值,切片操作相当于浅拷贝,会生成一个新的对象,因此c指向的对象不再是b所指向的对象,对c的操作不会改变b的值。
函数的默认参数
为什么调用group2的add_member方法会影响group1的members?
__init__
函数的第二个参数是默认参数,默认参数的默认值在函数创建的时候就生成了,每次调用都是用了这个对象的缓存。
解决方法如下,默认参数传入None
,创建对象的时候动态生成列表:
网友评论