1 ‘==’ 與‘is ’的使用
① ‘==’判斷兩個對象內(nèi)容是否相等
‘is’判斷兩個對象的地址是否相等
②在python中,有一個小整數(shù)常量池,在[-5, 257)中,里面的整數(shù)相當于都是初始化好的,不同的變量使用里面相同的整數(shù),地址是相同的。
當超出[-5, 257)范圍,每次使用整數(shù)需要重新創(chuàng)建,地址也就不相同。
③在python中有一個字符串常量池,每次創(chuàng)建的新的字符串都會存入這個常量池,當下次再使用相同的字符串只需要從常量池中調(diào)用,因此相同字符串的地址相同(不包括特殊情況)
④
創(chuàng)建列表和元組時,每次都開辟新空間,所以即使內(nèi)容相等,地址也不相等
?2.深拷貝與淺拷貝
① ?copy 模塊:
? ? copy.deepcopy ?深拷貝
? ? ?copy.copy 當拷貝的對象是列表(深),對里面的對象(淺)
? ? ? 當拷貝的對象是元組(淺),對于里面的對象(淺)
② ?
a=b
淺拷貝
③測試
測試一
測試二
deepcopy 深拷貝
測試三
copy列表
測試四
copy 元組
3.其他拷貝方式
①分片表達式可以賦值一個序列
a='123'
b=split[:]
②字典的copy方法可以拷貝一個字典
d = dict(name="zhangsan", age=27)
co = d.copy()
③·有些內(nèi)置函數(shù)可以生成拷貝(list)
a = list(range(10))
b = list(a)
4.屬性 property
私有屬性添加setter和getter的方法
①方法一
使用 set 和 get 函數(shù),在類里面通過函數(shù)修改私有屬性
②方法二
為了簡化方法一
創(chuàng)建一個類屬性 (假設(shè)名字為money),令屬性等于property(set,get)
調(diào)用時 直接用 對象名.money即可直接使用set和get里面的內(nèi)容
③方法三
此方法與方法二使用時一樣的
@注解,get,set方法名字保持一致xx,在當時的get方法頭部加 @property,在原來的set方法頭部加@xx.setter