- 可變對象創(chuàng)建后可改變但地址不會改變,即變量指向的還是原來的變量.
- 不可變對象創(chuàng)建之后便不能改變,如果改變則會指向一個新的對象。
-
None在python里面是個單例對象 -
dict、list是可變對象,str、int、tuple、float是不可變對象。不可變對象
列表的操作
變量c是對b的切片操作的返回值,切片操作相當(dāng)于淺拷貝,會生成一個新的對象,因此c指向的對象不再是b所指向的對象,對c的操作不會改變b的值。
函數(shù)的默認(rèn)參數(shù)
為什么調(diào)用group2的add_member方法會影響group1的members?
__init__函數(shù)的第二個參數(shù)是默認(rèn)參數(shù),默認(rèn)參數(shù)的默認(rèn)值在函數(shù)創(chuàng)建的時候就生成了,每次調(diào)用都是用了這個對象的緩存。
解決方法如下,默認(rèn)參數(shù)傳入None,創(chuàng)建對象的時候動態(tài)生成列表:

image.png


