如何在python中保存“self”变量?

时间:2015-10-15 13:53:02

标签: python class oop variables self

在python中,在类中,当我将“self”变量保存到另一个变量中时,如果我编辑新变量,则“self”也会被编辑:

    undropped_lines = self.flagged_lines
    print self.flagged_lines
    del undropped_lines[0]
    print self.flagged_lines

如何在代码中避免这种特性?

2 个答案:

答案 0 :(得分:4)

这是因为列表是可变的,当您说undropped_lines = self.flagged_lines时,您只是在同一个实例上指出一个新名称。

如果您想要使用undropped_lines = self.flagged_lines[:]

的副本

答案 1 :(得分:3)

这是因为undropped_linesself.flagged_lines指向相同的数据。可以把它想象成指向同一实体的两个不同的“名称”。

您可以通过在分配到undropped_lines时创建列表的浅表副本来解决此问题。类似的东西:

undropped_lines = list( self.flagged_lines )