python高级编程

1.==,is的使用

python高级编程_第1张图片
python高级编程_第2张图片

总结

·is是比较两个引用是否指向了同一个对象(引用比较)。

·==是比较两个对象是否相等。

2.深拷贝、浅拷贝

1.浅拷贝

浅拷贝是对于一个对象的顶层拷贝

通俗的理解是:拷贝了引用,并没有拷贝内容

python高级编程_第3张图片
python高级编程_第4张图片

2.深拷贝

深拷贝是对于一个对象所有层次的拷贝(递归)

python高级编程_第5张图片
进一步理解拷贝
python高级编程_第6张图片
python高级编程_第7张图片
python高级编程_第8张图片
python高级编程_第9张图片
python高级编程_第10张图片
python高级编程_第11张图片

3.拷贝的其他方式

浅拷贝对不可变类型和可变类型的copy不同

python高级编程_第12张图片
python高级编程_第13张图片

·分片表达式可以赋值一个序列

·字典的copy方法可以拷贝一个字典

·有些内置函数可以生成拷贝(list)

·copy模块中的copy函数

python高级编程_第14张图片

3.属性property

1.私有属性添加getter和setter方法

python高级编程_第15张图片
python高级编程_第16张图片

2.使用property升级getter和setter方法

python高级编程_第17张图片
运行结果:
python高级编程_第18张图片
python高级编程_第19张图片
运行结果:

3.使用property取代getter和setter方法

@property成为属性函数,可以对属性赋值时做必要的检查,并保证代码的清晰短小,主要有2个作用

·将方法转换为只读

·重新实现一个属性的设置和读取方法,可做边界判定

python高级编程_第20张图片
运行结果:
python高级编程_第21张图片
python高级编程_第22张图片
运行结果:

你可能感兴趣的:(python高级编程)