Python 列表参数 修改与赋值 对外部变量的影响

    技术2022-07-10  108

     两个函数

    def test1(alist): # 对参数列表进行修改 alist[0] = 233 alist.append(33) def test2(alist): # 对参数列表进行赋值 alist = [9,5,1,10]

    调用结果

    alist = [1,2,3] test1(alist) print(alist) # 输出 [233, 2, 3, 33] alist = [1,2,3] test2(alist) print(alist) # 输出 [1, 2, 3]

    猜测

    list在作为参数传进函数时,传的是引用,函数内修改时,直接修改了内存中的数据

    但是,Python中变量是可以被重新赋值为任何值的,当进行了

    alist = something

    这样的操作时,alist指向的地址发生了变化,成了局部变量,此时再对alist做任何操作都不会影响到外部变量了

    Processed: 0.014, SQL: 9