Python赋值操作、浅/深拷贝及函数参数传递解析
发布时间
阅读量:
阅读量
学习过C语言的学生通常能够明确区分变量与指针的概念,而Python语言中的变量本质上均以指针形式存在。因此,在执行变量赋值操作时(例如a=b),实际上只是复制了对应的索引信息。若希望复制指针所指向的内容,则需借助浅拷贝与深拷贝机制。接下来将对Python中的赋值操作、浅拷贝以及深拷贝之间的差异进行详细说明。
赋值操作
当变量b被赋予变量a的值时,实际上变量b将与变量a共同指向同一对象。具体示例如下图所示:

因此,当对这一对象的内容进行修改后,无论通过a还是b进行引用,所获取的内容均已被更改。
import copy
class aclass(object):
def __init__(self):
self.list = [1, 2, [0, 0]]
self.variable = 3
def main():
a = aclass()
b = a
print(id(a), id(b), a is b)
b.variable = 0
pri
全部评论 (0)
还没有任何评论哟~
