书接上回:
python基础语法一-基本数据类型
python基础语法二-多维数据类型
python基础语法三-类
python基础语法四-数据可视化
python基础语法五-函数
python基础语法六-正则匹配
python基础语法七-openpyxl操作Excel
python基础语法八-异常
python基础语法九-多进程和多线程
python基础语法十-文件和目录操作
1. 赋值
两个对象的id相同,实际是同一个对象,指向的是同一块内存空间
2. 浅拷贝
两个对象的id不同,但是里面的对象id相同,即子对象id相同
3. 深拷贝
两个对象的id不同,且里面的对象id也不同,即子对象id也不同
例:
class Text:
pass
class Picture:
pass
class Book:
def __init__(self, text, picture):
self.text = text
self.picture = picture
# 1.赋值
text1 = Text()
text2 = text1
print('--------------assign--------------')
print(text1)
print(text2)
# 2.浅拷贝
picture = Picture()
book1 = Book(text1, picture)
import copy
book2 = copy.copy(book1)
print('---------shallow copy---------------')
print(book1, book1.text, book1.picture)
print(book2, book2.text, book2.picture)
# 3.深拷贝
book3 = copy.deepcopy(book1)
print('--------deep copy------------------')
print(book1, book1.text, book1.picture)
print(book3, book3.text, book3.picture)