python之global的用法注意

nums = [11,22]

def test():
    global nums
    nums.append([33,44])
    nums.append(55)
    nums += [66]

print(nums)
test()
print(nums)

out:

[11, 22]
[11, 22, [33, 44], 55, 66]

总结:

  1. 在一个函数中对全局变量进行修改的时候,到底是否需要使用global进行说明,看是否对全局变量的指向进行了修改

    如果修改了指向,即让全局变量指向了一个新的地方,那么必须使用global

    如果仅仅是修改了指向空间中数据,此时不用使用global

  2. 定义了变量后,要修改且global说明时,必须在定义完第一时间使用,否则,报错,如下:

    nums = [11,22]
    
    def test():
        nums.append([33,44])
        nums.append(55)
        global nums
        nums += [66]
    
    print(nums)
    test()
    print(nums)
    

    out:

      File "E:/PycharmProjects/01stu/03thread/t4testGlobal.py", line 16
        global nums
        ^
    SyntaxError: name 'nums' is used prior to global declaration
    

你可能感兴趣的:(python之global的用法注意)