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']

很明显,普通引用只是名称的绑定,而只有完整切片才是真正意义上的复制。所以我们在简单引用后一定要考虑是否可以更改,因为操作可能影响到源对象。

posted @ 2019-12-10 10:21  南瓜饼卷南瓜  阅读(202)  评论(0)    收藏  举报
友情链接: 松鼠 深圳尊而光律师事务所