這個代碼是什么意思啊
def?count(): ????fs?=?[] ????for?i?in?range(1,?4): ????????def?f(i?=?i): ????????????return?i?*?i ????????fs.append(f) ????return?fsf1,?f2,?f3?=?count()print?f1(),?f2(),?f3()
就是那個def f(i = i)沒有懂它的含義
def?count(): ????fs?=?[] ????for?i?in?range(1,?4): ????????def?f(i?=?i): ????????????return?i?*?i ????????fs.append(f) ????return?fsf1,?f2,?f3?=?count()print?f1(),?f2(),?f3()
就是那個def f(i = i)沒有懂它的含義
2019-12-27
舉報
2019-12-27
我的理解是這樣子的。
def f(i = i) 中第一個i是形式參數,第二個i是取值(1,4)的值。很繞啊,為了方便理解,也可以這樣寫:
在這里每一次循環,分別相當于x=1, x=2, x=3(值引用)。
好了,樓主的問題就回答完了。
?我想強調的是,f(x=i) 在運算過程中定義了新的變量x,每次計算返回f(x)=x*x,當打印f1, f2, f3時分別帶入
1,2,3得到1,4,9. 這里往往容易錯誤的把f(i=i)寫成f(),得到的f1,f2,f3,打印結果的時候,循環變量i已經變成3,最終只能得到結果9,9,9.
2020-03-11
我是了一下,和 (i=i) 沒啥關系
和append(f())? ?少了里面的括號有關吧