返回函式的函式

2021-09-19 06:06:47 字數 1058 閱讀 1922

廖雪峰python課程裡的**作業的兩種實現方法

1.def createcounter():

a = 0

def counter():

nonlocal a #nonlocal 函式是「引用外部函式」的函式

a += 1 #a += 1等同於a = a + 1

return a

return counter

countera = createcounter()

print(countera(),countera(),countera(),countera())

counterb = createcounter()

l = [counterb(),counterb(),counterb(),counterb(),counterb()]

print(l)

if l == list(range(1,6)):

print(『測試通過』)

else:

print(『測試失敗』)

def createcounter():

i = [0]

def counter():

i[0] += 1

return i[0]

return counter

countera = createcounter()

print(countera(),countera(),countera(),countera())

counterb = createcounter()

l = [counterb(),counterb(),counterb(),counterb(),counterb()]

print(l)

if l == list(range(1,6)):

print(『測試通過』)

else:

print(『測試失敗』)

總結一下:

1.列表list預設是全域性變數

2.變數在函式內部區域性是區域性變數,被global修飾的變數為全域性變數, 而被nonlocal修飾的變數為外層函式區域性變數(非全域性變數)。

返回函式,匿名函式

1.返回函式 求和的函式,可以不返回求和的結果,而是返回求和的函式 def calc sum args def sum ax 0 for n in args ax ax n return ax return sum 2.匿名函式 以map 函式為例,計算f x x2時,除了定義乙個f x 的函式外,...

返回函式指標的函式

顧名思義,指標函式即返回指標的函式。其一般定義形式如下 型別名 函式名 函式引數表列 其中,字尾運算子括號 表示這是乙個函式,其字首運算子星號 表示此函式為指標型函式,其函式值為指標,即它帶回來的值的型別為指標,當呼叫這個函式後,將得到乙個 指向返回值為 的指標 位址 型別名 表示函式返回的指標指向...

關於返回函式

def sum args def he s 0 for i in args s s i return s return he 返回sum函式內部的函式he 和def he 的縮排相同 print sum 1,2,3,4 返回函式 print sum 123,3,3 返回求和的數值 閉包中盡量不要使用...