如何在 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_linesself.flagged_lines指向相同的数据。将其视为指向同一实体的两个不同 "names"。

您可以通过在分配给 undropped_lines 时创建列表的浅表副本来解决这个问题。类似于:

undropped_lines = list( self.flagged_lines )