2018年12月8日 函数变量与递归

局部变量和全局变量

没有缩进  就是全局变量:在整个文件都能生效

,在子程序中定义的就是局部变量,只在程序内部生效

name="全局变量"#全局变量

def change_name():
    name="局部变量"#局部变量
    print(name)

change_name()#注意name的传递
print(name)#注意name的传递

def ch_name():
    global name #在程序中将name定义为全局变量
    name="global name用法"
    print(name)

ch_name()
print(name)

1.如果无global,优先读取局部变量,能够读取全局变量,无法对全局变量重新赋值,但是对于可变类型,可以对内部元素可以操作,例如append 等操作

2.如果有global,变量就是全局变量,可读写可赋值

规则:为了做区分,全局变量用 大写,局部变量用 小写

 nonlocal  调用上一层变量

name="abc"
def test1():
    name="test1"
    def test2():
        nonlocal name #调用上一层的name变量
        print(name)
    test2()
    print(name)
test1()

原文地址:https://www.cnblogs.com/python1988/p/10086600.html