python面向对象的一些个人见解
当你创建一个对象并给它赋一个变量的时候,这个变量仅仅引用那个对象,而不是表示那个对象本身!也就是说,变量名只是指向计算机中存储那个对象的内存。这被称作名称到对象的绑定。
#!/usr/bin/python #-*- coding=utf-8 -*- print '-----------简单的赋值-----------' shoplist = ['apple','mango','carrot','banana'] mylist = shoplist # 简单的赋值 只是引用变量名 del shoplist[0] del mylist[0] print 'shoplist 列表:',shoplist print 'mylist 列表:',mylist print '完整切片是真正的复制:' mylist = shoplist[:] del mylist[0] print 'shoplist 列表:',shoplist print 'mylist 列表:',mylist
输出结果为:
-----------简单的赋值----------- shoplist 列表: ['carrot', 'banana'] mylist 列表: ['carrot', 'banana'] 完整切片是真正的复制: shoplist 列表: ['carrot', 'banana'] mylist 列表: ['banana']
很明显,普通引用只是名称的绑定,而只有完整切片才是真正意义上的复制。所以我们在简单引用后一定要考虑是否可以更改,因为操作可能影响到源对象。

浙公网安备 33010602011771号