接上文Python开发从零开始-20.7-基础语法(面向对象),本文将继续介绍 Python 面向对象编程的相关知识。
(八)对象的引用和复制
在 Python中,面向对象编程涉及到对象的引用和复制,理解这两者的区别对于编写高效和正确的代码至关重要,特别是在面向对象编程的上下文中。
1、引用(Reference)
在 Python 中引用是变量指向内存中对象的机制,变量只是对象的标签。当你将一个对象赋值给另一个变量时,实际上是创建了一个指向该对象的引用,而不是对象的副本。这意味着两个变量都指向内存中的同一个对象(内存地址一致)。

id(object)
|
2、复制(Copy)
复制一个对象意味着创建一个新的对象,其内容和原始对象相同,但是它们在内存中占据不同的位置。在 Python 中,可以对象的复制包括:浅复制、深复制。
(1)浅复制(Shallow Copy)
可以使用 copy 模块的 copy() 函数创建一个对象的浅复制。如果原对象包含对其他对象的引用(例如列表、字典等),新对象将包含对这些引用对象的引用,而不是它们的副本。简单点说,浅复制意味着对象本身会被复制,但是对象中包含的子对象仍然是引用。

(2)深复制(Deep Copy)
可以使用 copy 模块的 deepcopy() 方法创建一个对象的深复制。深复制意味着对象及其所有子对象都会被复制,形成一个完全独立的副本。

模块是一个 .py 文件,可以包含函数、类、变量以及可执行的代码,导入模块后可重复使用这些代码。有关模块的知识,后续进行主题介绍,此处主要用于演示,大家了解即可。 |
(九)组合
组合是一种将对象作为其他对象的属性来使用的方法,用于实现代码的重用和模块化,组合可以创建更灵活、功能更丰富的对象。组合与继承的差异之处在于:
继承:父类和子类是 “is” 关系,表示子类 “是” 父类。例如:人是动物、黑猫是猫等;
组合:类和组合类是 “has-a” 关系,表示组合类中 “有” 这么一个类。例如:自行车有轮胎、汽车有发动机等。

Python 面向对象编程是其语法核心,需要大家深刻学习和领悟,如果有疑问欢迎留言区讨论。