全局变量,局部变量 name ='lzp'#设置全局变量def change_name(): print("my name is ",name)change_name() def change_name(): name ='wzdjm'#设置局部变量 print('my name is ',name )change_name()print(name) def change_name(): global name#设置全局变量:在函数中设定global 变量修改为之后变量修改的内容 name ='wzdjm' print('my name is ',name )change_name()print(name)
“”"
1.如果函数的内容无global关键字,优先读取局部变量,能读取全局变量, 无法对全局变量重新赋值,name="***",但是可以对可变类型的内部元素进行操作(增删改) -无glodal,有声明变量 name= ['lzp','yxm']def a_name(): name='lzp' print('my name is ',name)a_name() -无glodal,无声明变量 name= ['lzp','yxm']def a_name(): #name='lzp' name.append('wjs') print('my name is ',name)a_name() 2.如果函数中由glbal关键字,变量本质上就是全局变量,可以读取并赋值name="***"
#有glodal关键字,有声明局部变量
name= ['lzp','yxm']def a_name(): global name name='lzp' print('my name is ',name)a_name() 有glodal关键字,无声明局部变量 name= ['lzp','yxm']def a_name(): global name print('my name is ',name)a_name() 注:全局变量要大写,局部变量要小写
eg1.: NAME = '调皮的抽屉'def huangwei(): name = '黄' print(name) def liuyang(): print('liu') def lzp(): print(lzp) liuyang() print(name)huangwei()
eg2.: NAME = 'wzdjm'def huangwei(): name = '调皮的抽屉' print(name) def liuyang(): name = '刘洋' print(name) def yxm(): name = '于鑫淼' print(name) print(name) yxm() liuyang() print(name)huangwei()
eg3.: name = "刚娘"def weihou(): name="陈卓" def weiweihou(): global name name= '冷静' weiweihou() print(name)print(name)weihou()print(name)
eg4.: name = "刚娘"def weihou(): name="陈卓" def weiweihou(): nonlocal name name= '冷静' weiweihou() print(name)print(name)weihou()print(name)