局部变量与全局变量
全局变量:顶头写,没有空格,任何时候都能调用
name='lhf'
局部变量:子程序中的变量,比如一个函数里x=1,如果同时有全局变量x=1跟局部变量x=1,那么就执行局部变量,如果没有局部变量就执行全局变量(家里没有再去外面找,一层一层的找,知道找到最外边一层)
name='“lfe” def change_name(): global name name='帅了一比' print('change_name',name)
但是局部变量只在函数里面生效
name = "adf" def change_name(): global name #如果这在加入global name(就是全局变量,就是name=“adf”) name='帅了一比' print('change_name',name) print(name)
'帅了一比' # 因为name='帅了一比'是在global后面赋值的,所以把全局变量改了
错误事例:name局部变量之后再拿全局变量,会导致找不到该使用的name值,因为优先使用局部变量就该用name = "自己",但是根据自上而下的规则又要使用global NAME,这样就会产生矛盾从而报错。
解决措施:因此全局变量尽量大写,局部变量尽量都小写,比较好区分。
NAME = ["产品经理","廖波湿"] def qupengfei(): name = "自己" global NAME print('我要搞', NAME) qupengfei()
嵌套函数注意使用的顺序,例2
NAME = '海风' def huangwei(): name = "黄伟" print(name) def liuyang(): name = "刘洋" print(name) def nulige(): name = '沪指花' print(name) print(name) nulige() liuyang() print(name)

5.事例,看竖排排版排序,当出现函数名加括号[huangwei()]这种情况时才需要进入到指定函数的过程,依次往下进行。
特别注意:print()需要计算之后往外跳得值!print()的时候先从自身找!
name = "刚娘" def weihou(): name = "陈卓" #最后取得的值就是三个print的结果 def weiweihou(): global name name = "冷静" weiweihou() print(name) print(name) weihou() print(name) # 刚娘 # 陈卓 # 冷静
6.新概念,nonlocal(上一级的变量)
name = "刚娘" def weihou(): name = "陈卓" def weiweihou(): gnonelocal name # nonlocal,指定上一级变量,如果没有就继续往上直到找到为止 name = "冷静" weiweihou() print(name) print(name) weihou() print(name) # 刚娘 # 冷静 # 刚娘
浙公网安备 33010602011771号