关键词

Python对象与引用的介绍

Python对象与引用的介绍

在Python中,一切都是对象。对象(Object)是Python中最重要的概念之一,懂得如何管理对象在Python编程中至关重要。Python中的所有变量都是对象的一个引用,这就意味着当我们将一个对象赋值给一个变量时,实际上是将这个对象的引用赋值给变量。这也就是为什么很多人将Python描述成一门“动态”“弱化”的语言,因为我们不需要像其他语言那样明确声明变量的类型,Python解释器自动将对象的类型与变量关联起来。

变量和对象的关系

在Python中,对象是对一块内存的抽象描述。我们可以将一个对象看作是一个值的容器,在Python中它没有具体或者独特的位置(实际上在内存中),但它有一个唯一的身份(也就是对象的id),有一种类型(也就是对象的类),有一些可访问的属性(也就是对象的属性),还可以执行一些操作(也就是方法)。一个对象的身份是它的唯一标识符,而它的类型和值通常都会随时间改变。

变量是对象的名称(或者说是引用)。在 Python 中,我们将变量看作是贴在对象上面的标签。我们可以用变量名来引用对象,而不必直接使用对象的id。Python解释器可以自动跟踪所有相互关联的引用,知道对象何时不再被使用,从而回收不再需要的对象内存空间。

示例

下面的例子可以帮助我们更好地理解Python对象和引用之间的关系:

a = 1
b = a
a = 2
print(a)    # 输出 2
print(b)    # 输出 1

在这个例子中,我们创建了一个名为a的变量,并将它的值设为1。接着,我们使用b变量的引用将a引用的对象赋给b变量,也就是说,ab都引用了同一个对象。

然后我们又将a的引用指向了一个值为2的新对象,因此ab引用的对象不再相同。因此以上代码片段输出:

2
1

再看一个示例:

my_list = [1, 2, 3]
your_list = my_list
my_list.append(4)
print(my_list)      # 输出 [1, 2, 3, 4]
print(your_list)    # 输出 [1, 2, 3, 4]

在这个例子中,我们创建了一个名为my_list的列表,并在其中添加了三个整数元素。接着,我们使用your_list变量的引用将my_list引用的对象赋给your_list变量,也就是说,my_listyour_list都引用了同一个对象。

然后我们修改了my_list列表,添加了一个值为4的元素。因为my_listyour_list引用的是同一个对象,所以这个修改同样会体现在your_list变量引用的对象上。因此以上代码片段输出:

[1, 2, 3, 4]
[1, 2, 3, 4]

通过以上两个示例,我们可以知道,变量只是对象的一个引用,修改一个变量并不会影响到其他变量,因为它们指向的是不同的对象。但是如果这些变量都指向同一个可变对象(比如list),那么修改其中一个变量,其他变量也将受到影响。

本文链接:http://task.lmcjl.com/news/10400.html

展开阅读全文