目錄
- 嵌套函數
- 匿名函數
- 高階函數
嵌套函數
就是在函數里再定義一個函數
# 1,函數內部可以在定義函數
# 2,函數要想執行,必須要先被調用
def name1():print('kk')def name2():print('vfx')name2()
name1()
輸出:
kk
vfx
name2 現在他內部代碼找輸出,如果沒有變量,就會往上一個層級去找,最后找全局,比如
def name1():age = 22print(age)def name2():# age = 34print(age)name2()
name1()
輸出 22,22
匿名函數
就是沒有名字的函數
# 函數
def calc(x,y):return x**y
# 匿名
lambda x,y:x**y # 聲明一個匿名函數
函數與匿名函數的區別
有名函數:循環使用,保存了名字,通過名字就可以重復引用函數功能
匿名函數:一次性使用,隨時隨時定義,不能用做復雜的計算。(比如 if)
匿名函數給了名字之后,也可以調用
def calc(x,y):return x**yfunc = lambda x,y:x**yprint(calc(2,3))
print(func(2,3)) # 輸出結果是一樣的,這樣就沒有意義了
高階函數
變量可以指向函數,函數的參數能接收變量,那么一個函數就可以接收另一個函數作為參數,這種函數稱為高階函數
```python
def calc():
return x**x
n = 2 # 函數的參數能接收變量
f =calc(n) # 變量指向函數
calc(n)
只需要滿足以下任意條件,就是高階函數
- 接受一個或多個函數作為輸入
- return返回另一個函數