在Python中调用方法时,实例变量发生了变化

时间:2015-01-27 20:21:47

标签: python instance-variables

我在理解以下情况下实例变量会发生什么时遇到问题:

class Permutation:
    def __init__(self,cycles):
        self.cycles=cycles            

    def inverse(self):
        c=self.cycles
        for i in c:
            r=math.ceil(len(i)/2)
            for j in range(r):
                i[j],i[-(j+1)]=i[-(j+1)],i[j]
        return c

p = Permutation([[1,5,2],[3, 7]])
print(p.cycles)
p.inverse()
print(p.cycles)

输出:

>>> 
[[1, 5, 2], [3, 7]]
[[2, 5, 1], [7, 3]]

我有一个名为Permutation的类,带有实例变量周期。当我想计算置换的倒数时,我定义了新的变量c,它应该与self.cycles相同,然后我计算变量c的倒数。当我创建一个实例p = Permutation(...)并调用p.inverse()时,p.cycles实际上会改变,我不知道为什么。

有人可以解释变量周期发生了什么吗?

谢谢!

0 个答案:

没有答案