name = "Yang Li" def change_name(name): print("before change:",name) name = "你好" print("after change", name) change_name(name) print("在外面看看name改了么?",name)
输出:
before change: Yang Li
after change 你好
在外面看看name改了么? Yang Li
NAME = "alex" def yangjian(): global NAME # 已经声明,NAME就是全局的的那个变量 print(‘1我的名字‘, NAME) NAME = "land" # 修改 全局的变量 print(‘2我的名字‘, NAME) def qupengfei(): name = "yang" print(‘3我的名字‘, NAME) yangjian() qupengfei()
输出:
1我的名字 alex 2我的名字 land 3我的名字 yang ######## 全局变量变量名大写 ######## 局部变量变量名小写 #函数中 优先读取局部变量,能读取全局变量,无法对全局变量重新赋值;但是对于可变类型,可以对内部元素进行操作;如果函数中有global关键字,变量本质上就是全局的那个变量,可读取可赋值
name = "刚娘" def weihou(): name = "陈卓" def weiweihou(): nonlocal name # nonlocal,指定上一级变量,如果没有就继续往上直到找到为止 name = "冷静" print(name) weiweihou() print(name) print(name) weihou() print(name) # 刚娘 # 陈卓 # 陈卓 # 刚娘
全局与局部变量
要想获取函数的执行结果,就可以用return语句把结果返回
注意:
嵌套函数
name = "Alex" def change_name(): name = "Alex2" def change_name2(): name = "Alex3" print("第3层打印",name) change_name2() #调用内层函数 print("第2层打印",name) change_name() print("最外层打印",name)
原文:https://www.cnblogs.com/Yangyl00/p/13184956.html