Python3 的內建函式和閉包

2021-10-01 09:30:55 字數 1620 閱讀 3562

如果在函式內部需要修改全域性變數那麼需要使用global關鍵字

x=1

defmfun():

global

x x=2

print

(x)>>>mfun()

2

內部函式的的作用域在外部函式作用於之內,及只能在外部函式內呼叫內部函式

def

outside():

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

def

line_conf():

defline(x):

return 2*x+1

return line #

return a function object

my_line =line_conf()

print(my_line(5))

def

line_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關鍵字,委屈求全可以使用「容器型別」代替

def

line_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

def

line_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 數值的除法...