局部变量和全局变量
没有缩进 就是全局变量:在整个文件都能生效
,在子程序中定义的就是局部变量,只在程序内部生效
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()