廖雪峰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 返回求和的數值 閉包中盡量不要使用...