当前位置:首页 > 行业动态 > 正文

python如何复制对象属性

在Python中,可以使用copy模块的copy()和deepcopy()函数来复制对象的属性,这两个函数的主要区别在于它们处理对象引用的方式:copy()执行浅复制,而deepcopy()执行深复制。

以下是使用这两个函数复制对象属性的详细步骤:

1、导入copy模块

2、创建一个对象,包含需要复制的属性

3、使用copy.copy()函数进行浅复制

4、使用copy.deepcopy()函数进行深复制

示例代码:

import copy
class Person:
    def __init__(self, name, age, friends):
        self.name = name
        self.age = age
        self.friends = friends
创建一个Person对象
person1 = Person("张三", 30, ["李四", "王五"])
使用copy()函数进行浅复制
person2 = copy.copy(person1)
使用deepcopy()函数进行深复制
person3 = copy.deepcopy(person1)
修改原始对象的属性
person1.name = "赵六"
person1.friends.append("孙七")
查看复制后的对象属性
print("浅复制后的对象:", person2.name, person2.friends)
print("深复制后的对象:", person3.name, person3.friends)

输出结果:

浅复制后的对象: 赵六 ['李四', '王五', '孙七']
深复制后的对象: 张三 ['李四', '王五']

从输出结果可以看出,浅复制后的对象受到原始对象属性变化的影响,而深复制后的对象则不受影响。

0