如何在 python 中保存 "self" 变量?
How to save a "self" variable in python?
在 python 中,在 class 中,当我将一个 "self" 变量保存到另一个变量时,如果我编辑新变量, "self"也被编辑:
undropped_lines = self.flagged_lines
print self.flagged_lines
del undropped_lines[0]
print self.flagged_lines
应该如何在代码中避免这种特性?
这是因为列表是可变的,当您说 undropped_lines = self.flagged_lines
时,您只是在同一个实例中指向一个新名称。
如果你想要一份副本,请使用undropped_lines = self.flagged_lines[:]
这是因为undropped_lines
和self.flagged_lines
指向相同的数据。将其视为指向同一实体的两个不同 "names"。
您可以通过在分配给 undropped_lines
时创建列表的浅表副本来解决这个问题。类似于:
undropped_lines = list( self.flagged_lines )
在 python 中,在 class 中,当我将一个 "self" 变量保存到另一个变量时,如果我编辑新变量, "self"也被编辑:
undropped_lines = self.flagged_lines
print self.flagged_lines
del undropped_lines[0]
print self.flagged_lines
应该如何在代码中避免这种特性?
这是因为列表是可变的,当您说 undropped_lines = self.flagged_lines
时,您只是在同一个实例中指向一个新名称。
如果你想要一份副本,请使用undropped_lines = self.flagged_lines[:]
这是因为undropped_lines
和self.flagged_lines
指向相同的数据。将其视为指向同一实体的两个不同 "names"。
您可以通过在分配给 undropped_lines
时创建列表的浅表副本来解决这个问题。类似于:
undropped_lines = list( self.flagged_lines )