目录
在Python开发中,我们经常遇到需要复制对象的情况。比如处理用户配置时需要保留原始模板,或在多线程环境中传递数据副本。这时如果直接使用赋值操作(b = a),看似创建了新对象,实则只是让多个变量指向同一块内存地址。这种"复制引用"的行为就像给同一本书贴上多个书签,修改任意一个书签指向的内容,其他书签也会看到变化。
一、拷贝的本质:内存地址的博弈
Python采用"一切皆对象"的设计哲学,变量本质是对象的引用。当执行a = [1, 2, [3, 4]]时,系统会在内存中创建包含三个元素的列表对象,变量a存储的是这个对象的内存地址(可通过id(a)查看)。