返回函式之迴圈變數問題

2021-09-19 12:07:03 字數 806 閱讀 6967

返回函式之迴圈變數問題

一、學習要點:

1.返回函式建立的時候不被執行,呼叫的時候才被執行;

2.返回函式不要應用任何迴圈變數或者後續會發生變化的變數;

3.如果一定要引用迴圈變數,方法是在建立乙個函式,用該函式的引數繫結迴圈變數當前的值,無論該迴圈變數後續如何更改,已繫結的函式引數的值不變:

二、學習**:

結果不是1,4,6,全部都是9。原因就在於返回的函式引用了變數i,但它並非立刻執行。等到3個函式都返回時,它們所引用的變數i已經都變成了3,因此最終結果都為9。

如果一定要引用迴圈變數,方法是再建立乙個函式,用該函式的引數繫結迴圈變數當前的值,無論該迴圈變數後續如何更改,已繫結的函式引數的值不變:

閉包返回函式不引用迴圈變數

def count fs for i in range 1,4 def f return i i return fs f1,f2,f3 count print f1 9 print f2 9 print f3 9 全部都是9 原因就在於返回的函式引用了變數i,但它並非立刻執行。等到3個函式都返回時,...

python返回函式 python中返回函式

python的函式不但可以返回int str list dict等資料型別,還可以返回函式!例如,定義乙個函式 f 我們讓它返回乙個函式 g,可以這樣寫 deff print call f 定義函式g defg print call g 返回函式g return g 仔細觀察上面的函式定義,我們在函...

python學習之返回函式

在學習返回函式的時候,函式只是在呼叫的時候才會執行一直不理解,隔天後在來看的時候明白了一些,記錄一下。看 def fun1 n deffun2 x return pow x,n return fun2 pow2 fun1 2 pow2 fun2 at 0x7f8bdfe2e378 pow2 9 81...