Advertisement

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)

还没有任何评论哟~