Python全局变量和局部变量
生活随笔
收集整理的這篇文章主要介紹了
Python全局变量和局部变量
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
全局變量和局部變量
定義在函數內部的變量擁有一個局部作用域,定義在函數外的擁有全局作用域。
局部變量只能在其被聲明的函數內部訪問,而全局變量可以在整個程序范圍內訪問。調用函數時,所有在函數內聲明的變量名稱都將被加入到作用域中。如下實例:
以上實例輸出結果:
函數內是局部變量 : 30
函數外是全局變量 : 0
global 和 nonlocal關鍵字
global
當內部作用域想修改外部作用域的變量時,就要用到global和nonlocal關鍵字了。
以下實例修改全局變量 num:
num = 1 def fun1():global num # 使用global用來對一個全局變量的聲明,那么這個函數中的num就不是定義一個局部變量,而是#對全局變量進行修改print(num) num = 123print(num) fun1()以上實例輸出結果:
1
123
列表是當全局變量的
如下面的例子
nonlocal
如果要修改嵌套作用域(enclosing 作用域,外層非全局作用域)中的變量則需要 nonlocal 關鍵字了,如下實例:
def outer():num = 10def inner():nonlocal num # nonlocal關鍵字聲明num = 100print(num)inner()print(num) outer()以上實例輸出結果:
100
100
另外有一種特殊情況,假設下面這段代碼被運行:
a = 10 def test():a = a + 1print(a) test()以上程序執行,報錯信息如下:
Traceback (most recent call last):File "test.py", line 7, in <module>test()File "test.py", line 5, in testa = a + 1 UnboundLocalError: local variable 'a' referenced before assignment錯誤信息為局部作用域引用錯誤,因為 test 函數中的 a 使用的是局部,未定義,無法修改。
轉載于:https://www.cnblogs.com/yangliguo/p/7921423.html
總結
以上是生活随笔為你收集整理的Python全局变量和局部变量的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 微信获取token -1000
- 下一篇: Linux 安装 redis