简明 Python 教程
第9章 数据结构
上一页 参考 下一页

参考

当你创建一个对象并给它赋一个变量的时候,这个变量仅仅 参考 那个对象,而不是表示这个对象本身!也就是说,变量名指向你计算机中存储那个对象的内存。这被称作名称到对象的绑定

一般说来,你不需要担心这个,只是在参考上有些细微的效果需要你注意。这会通过下面这个例子加以说明。

对象与参考

例9.6 对象与参考

#!/usr/bin/python
# Filename: reference.py


print 'Simple Assignment'
shoplist = ['apple', 'mango', 'carrot', 'banana']
mylist = shoplist # mylist is just another name pointing to the same object!

del shoplist[0]

print 'shoplist is', shoplist
print 'mylist is', mylist
# notice that both shoplist and mylist both print the same list without
# the 'apple' confirming that they point to the same object


print 'Copy by making a full slice'
mylist = shoplist[:] # make a copy by doing a full slice
del mylist[0] # remove first item

print 'shoplist is', shoplist
print 'mylist is', mylist
# notice that now the two lists are different

(源文件:code/reference.py

输出

$ python reference.py
Simple Assignment
shoplist is ['mango', 'carrot', 'banana']
mylist is ['mango', 'carrot', 'banana']
Copy by making a full slice
shoplist is ['mango', 'carrot', 'banana']
mylist is ['carrot', 'banana']

它如何工作

大多数解释已经在程序的注释中了。你需要记住的只是如果你想要复制一个列表或者类似的序列或者其他复杂的对象(不是如整数那样的简单 对象 ),那么你必须使用切片操作符来取得拷贝。如果你只是想要使用另一个变量名,两个名称都 参考 同一个对象,那么如果你不小心的话,可能会引来各种麻烦。

给Perl程序员的注释
记住列表的赋值语句创建拷贝。你得使用切片操作符来建立序列的拷贝。


上一页 上一级 下一页
序列 首页 更多字符串的内容
时时彩计划软件公式
@ssv
新疆时时彩走势 做时时彩代理怎么赚的 诺亚时时彩注册 是不玩时时彩的都输了 菲律宾时时彩合法吗
在重庆时时彩平台被骗怎么办 时时彩网投 软件绑定机器码 时时彩不倍投稳赚方法 重庆时时彩定胆算法
时时彩平台对刷会封吗 助赢软件手机版 助赢北京pk10cpzyrj 奇妙软件3.1破解版 自贡时时彩技巧
江西时时彩组三预测 江西时时彩后二软件 凤凰时时彩平台官网 淘宝时时彩计划可靠吗 哪个时时彩软件好用