如何在Python中将对象设置为空对象?

时间:2015-11-17 02:19:46

标签: python variables object

这可能是一个愚蠢的问题,但自从我使用python以来已经有一段时间......

所以,我有一组对象,例如:

p1 = Person("Name", "Age")
p2 = Person("Name", "Age")
..

基本上,我如何复制一个对象并将其放在一个空对象中?

1 个答案:

答案 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'