如果在函式內部需要修改全域性變數那麼需要使用global關鍵字
x=1defmfun():
global
x x=2
(x)>>>mfun()
2
內部函式的的作用域在外部函式作用於之內,及只能在外部函式內呼叫內部函式
defoutside():
print("
正在呼叫outside")
definside():
print("
正在呼叫inside")
inside()
outside()
inside()
#這句話是錯的
正在呼叫outside
正在呼叫inside
traceback (most recent call last):
file
"c:\users\envy\desktop\learnning python\text.py
", line 7, in
inside()
nameerror: name
'inside'is
not defined
defline_conf():
defline(x):
return 2*x+1
return line #
return a function object
my_line =line_conf()
print(my_line(5))
defline_conf():
b = 15
defline(x):
return 2*x+b
return line #
return a function object
b = 5my_line =line_conf()
print(my_line(5)) # 返回25
在內部函式中只能對外部函式的區域性變數進行訪問,但是不能修改,如果需要修改則需要用到nonlocal關鍵字,委屈求全可以使用「容器型別」代替
defline_conf():
b = 15
defline(x):
nonlocal b
b=20
return 2*x+b
return line #
return a function object
b = 5my_line =line_conf()
print(my_line(5)) #返回30
defline_conf():
b = [15]
defline(x):
b[0]=20
return 2*x+b[0]
return line #
return a function object
my_line =line_conf()
print(my_line(5)) #
返回30
Python3 的內建函式和閉包
如果在函式內部需要修改全域性變數那麼需要使用global關鍵字 x 1 defmfun global x x 2 print x mfun 2 內部函式的的作用域在外部函式作用於之內,及只能在外部函式內呼叫內部函式 def outside print 正在呼叫outside definside pr...
python3 理解閉包
閉包 內部函式對外部函式作用域裡變數的引用 非全域性變數 則稱內部函式為 閉包。黃色部分,引用了作用域變數,巢狀在某個函式裡面,外部無法直接呼叫,被封閉起來成乙個包。就是閉包。開始講解,請認真看 請看以下,我想開啟冰箱,這個步驟只需要一次,然後再放入大象,再放入螞蟻,以下 能完成需求嗎?def op...
Python3內建函式
1 兩個列表可以相加 collections.counter計數器,計算列表中每項出現的次數,並返回字典型別,其中元素作為key,其計數作為value。當所訪問的鍵不存在時,返回0,而不是keyerror 否則返回它的計數。其中負號表示降序 預設公升序 與reverse true相同 4 數值的除法...