这可能是一个愚蠢的问题,但自从我使用python以来已经有一段时间......
所以,我有一组对象,例如:
p1 = Person("Name", "Age")
p2 = Person("Name", "Age")
..
基本上,我如何复制一个对象并将其放在一个空对象中?
答案 0 :(得分:1)
'空'对象并不存在,但出于演示目的,我们说empty is None
。
之后,您可以“复制”它们,您可以通过两种不同的方式进行复制:
copy.deepcopy
“复制的”对象不同(来自id()
方面),但它们的内容相似。无论哪种方式,它都不是很难。
对于第一种情况,我们使用一个简单的赋值语句,给出一个简单的类:
class Person:
def __init__(self, name, age):
self.name = name
self.age = age
它的两个实例:
p1 = Person("Name1", "Age1")
p2 = Person("Name2", "age2")
拥有一个新的“空”对象p3 = None
,我们可以通过赋值运算符复制另一个对象引用:
p3 = p1 # p1 and p3 point to the same Person Instance
print(p3.name) # 'Name1'
print(p3 is p1) # True, same object
# Changes we make to a copy are visible to other copies.
p3.name = "Change name"
p1.name # 'Change name'
要制作 copy
对象,意味着从内容方面相同,我们可以使用 copy.deepcopy
:
from copy import deepcopy
# copy contents of p3
p4 = copy.deepcopy(p3)
print(p4.name) # prints "Change name"
# changes now are insulated to p4.
p4.name = " Another name"
print(p3.name) # print 'Change name'