Python基礎學習簡記 閉包函式(Day7)

2021-09-29 01:19:03 字數 468 閱讀 5005

閉包是python裡關於函式定義的乙個很巧妙的方法,下面簡單介紹一下閉包。

閉包是乙個兩層函式體,內層函式定義在外層函式內部,並且內層函式用到了外層函式的變數,那麼內層函式和用到的外層函式的變數統稱為閉包。最重要的是外層函式最後的返回值應當是內層函式的位址,或者說返回的是內層函式的引用。

#閉包

defdef

linear

(a,b)

:def

l_in

(x):

print

(a * x + b)

return l_in

l1 = linear(2,

3)l1(5

)#13

#這裡l1是獲得了一條直線y= 2x + 3 ,然後對x賦值5,得到y值13

總結一下,使用閉包的好處就是簡化了引數的重新賦值,或者說可以儲存住外層函式的區域性資訊,不必重新傳遞引數值。

python基礎 閉包

摘自廖雪峰老師的部落格 返回閉包時,返回函式中不要引用任何後續可能變化的變數 如果一定要引用,就在原返回函式中再定義乙個函式,用該函式中的引數繫結可能變化的變數的當前值。def count fs for i in range 1,4 def f return i i return fs f1,f2,...

python 閉包 python 閉包

閉包 因為python中函式也可以當作物件,所以如果出現當我們返回乙個函式,而該函式含有外部變數的時候就形成了閉包。閉包的特點 是個巢狀函式 可以獲得非區域性的變數 將函式當作物件返回 看乙個例子會更易理解 def make printer msg msg hi there def printer ...

Python基礎10 閉包

內層函式引用了外層函式的變數 引數也算變數 然後返回內層函式的情況,稱為閉包 closure def calc sum lst deflazy sum return sum lst return lazy sumdef lazy sum args defsum ax 0 for n in args ...