1 ‘==’ 与‘is ’的使用
① ‘==’判断两个对象内容是否相等
‘is’判断两个对象的地址是否相等
②在python中,有一个小整数常量池,在[-5, 257)中,里面的整数相当于都是初始化好的,不同的变量使用里面相同的整数,地址是相同的。
当超出[-5, 257)范围,每次使用整数需要重新创建,地址也就不相同。
③在python中有一个字符串常量池,每次创建的新的字符串都会存入这个常量池,当下次再使用相同的字符串只需要从常量池中调用,因此相同字符串的地址相同(不包括特殊情况)
④
创建列表和元组时,每次都开辟新空间,所以即使内容相等,地址也不相等
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()
③·有些内置函数可以生成拷贝(list)
a = list(range(10))
b = list(a)
4.属性 property
私有属性添加setter和getter的方法
①方法一
使用 set 和 get 函数,在类里面通过函数修改私有属性
②方法二
为了简化方法一
创建一个类属性 (假设名字为money),令属性等于property(set,get)
调用时 直接用 对象名.money即可直接使用set和get里面的内容
③方法三
此方法与方法二使用时一样的
@注解,get,set方法名字保持一致xx,在当时的get方法头部加 @property,在原来的set方法头部加@xx.setter