2016-02-18 47 views
2

一个介绍性的Python教科书定义的“对象引用”如下,但我不明白:什么是Python中的对象引用?

的对象引用无非是在对象存储对象的身份(内存地址的具体表示更)。

教科书试图通过使用箭头来显示一个对象的引用作为某种关系的赋值语句a = 1234从可变a要对象1234表示这一点。

从我收集过的Wikipediaa = 1234的(对象)引用的将是a1234之间进行a是“指点”,以1234(随意澄清“基准与指针”)的关联,但它(1)我在自学Python,(2)许多搜索结果谈论Java的参考文献,以及(3)没有太多搜索结果是关于对象的参考文献。

那么,什么是Python中的对象引用?谢谢您的帮助!

+3

Python知道名称和值使用。一个很好的阅读是http://nedbatchelder.com/text/names.html – timgeb

+1

它指的是在C和相关语言中的一个众所周知的概念,并试图将它连接到你。如果你不熟悉C的概念,你可能只想跳过这个解释,因为它试图连接到你还不熟悉的其他东西。 –

+0

Java使用与Python相同的引用语义,因此这些搜索结果仍然相关。 –

回答

2

对象是东西。一般来说,它们就是您在等式右边看到的内容。

变量名称(通常被称为“名称”)是对实际对象的引用。当名称位于等式的右侧时,它引用的对象将自动查找并用于等式中。右侧表达式的结果是一个对象。等式左边的名称成为对这个(可能是新的)对象的引用。

注意,您可以对象引用是不明确的名称,如果您正在使用的容器对象时(如列表或字典):

a = [] # the name a is a reference to a list. 
a.append(12345) # the container list holds a reference to an integer object 

以类似的方式,多个名称可以参考相同的对象:

a = [] 
b = a 

我们可以证明他们是同一个对象通过查看abid,并指出它们是相同的。或者,我们可以看看ab(如果我们改变它,我们会因为它们引用相同的对象而进行变异)引用的对象的“副作用”。

a.append(1) 
print a, b # look mom, both are [1]! 

更准确地说,当一个名称在表达式

相关问题