Python中的变量

Rem*_*i.b 0 python variables

这是一个小脚本:

class Any(object):
    def __init__(self,x):
        self.x=x

l = [Any(2),Any(3),Any(7),Any(9),Any(10)]
print(len(l))
l2=[ind for ind in l]
l3=l
print(set(l2).difference(l3))
print(l2[1]==l[1])
print(l3[1]==l[1])
del l2[1]
print(len(l))
del l3[1]
print(len(l))
Run Code Online (Sandbox Code Playgroud)

为什么删除Anyin 的实例l2不会改变l,但是在l3更改中删除它l虽然l2和l3之间似乎没有任何区别?

非常感谢!

Ign*_*ams 5

因为:

>>> l is l2
False
>>> l is l3
True
Run Code Online (Sandbox Code Playgroud)

绑定引用两次使两个名称引用相同的对象.