python中global和nonlocal的使用

2022-07-26 08:12:16 字數 2244 閱讀 4225

global: 在區域性訪問全域性中的內容

nonlocal: 在區域性尋找外層函式中離他最近的那個變數

globals() 檢視全域性中的內容

locals() 檢視當前作用域中的內容

1、global的使用:

#

全域性變數本身就是不安全的, 不能隨意修改, 可以使用閉包

a = 10

deffunc():

""":return:

global的作用:

1. 可以把全域性中的內容引入到函式內部

2. 在全域性建立乙個變數

"""global

a a += 10

print

(a)func()

print(a)

執行結果為:

20

20

2、nonlocal的使用:

def

outer():

a = 10

#在inner中改變a的值

definner():

#尋找外層函式中離他最近的那個變數

nonlocal a

a = 20

print

(a)

print

(a) inner()

outer()

執行結果:

10

20

3、globals和locals的使用:

def

fn():

a = 10

defgn():

b = 20gn()

print

(locals())

fn()

print

(locals())

print(globals())

執行結果:

, '__builtins__

': '

builtins

' (built-in)>, '

__file__

': '

d:/learnpj/oldboy/day11/global和nonlocal.py

', '

__cached__

': none, '

i': 10, '

fn': }

, '__builtins__

': '

builtins

' (built-in)>, '

__file__

': '

d:/learnpj/oldboy/day11/global和nonlocal.py

', '

__cached__

': none, '

i': 10, '

fn': }

練習題:

a = 1

deffun_1():

a = 2

deffun_2():

global

a a = 3

deffun_3():

a = 4

print

(a)

print

(a) fun_3()

print

(a)

print

(a) fun_2()

print

(a)print

(a)fun_1()

print(a)

a = 1

deffun_1():

a = 2

deffun_2():

nonlocal a

a = 3

deffun_3():

a = 4

print

(a)

print

(a) fun_3()

print

(a)

print

(a) fun_2()

print

(a)print

(a)fun_1()

print(a)

以上兩道練習題的輸出結果分別是什麼,請自行理解並輸出一下!

python中locals和globals函式

首先,是關於名字空間的乙個名詞解釋。是枯燥,但是很重要,所以要耐心些。python使用叫做名字空間的東西來記錄變數的軌跡。名字空間只是乙個 字典,它的鍵字就是變數名,字典的值就是那些變數的值。實際上,名字空間可以象python的字典一樣進行訪問,一會我們就會看到。在乙個python程式中的任何乙個地...

php 中global關鍵字和 GLOBALS用法

首先我們先看一段 a 1 global scope function test test 這個指令碼不會有任何輸出,因為 echo 語句引用了乙個區域性版本的變數 a 而且在這個範圍內,它並沒有被賦值。你可能注意到 php 的全域性變數和 c 語言有一點點不同,在 c 語言中,全域性變數在函式中自動...

Python中global與nonlocal 宣告

如下 a 10 def foo a 100 執行foo 結果 a 還是10 函式中對變數的賦值,變數始終繫結到該函式的區域性命名空間,使用global 語句可以改變這種行為。a 10 def foo global a a 100 a 10 foo a 100 解析名稱時首先檢查區域性作用域,然後由內...