我在理解以下情况下实例变量会发生什么时遇到问题:
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实际上会改变,我不知道为什么。
有人可以解释变量周期发生了什么吗?
谢谢!