python的高階函式和函式即變數

2022-09-02 01:54:05 字數 1101 閱讀 7435

1:高階函式

#

高階函式 定義:把函式作為引數作為另乙個函式的引數

deftest(a,b):

return a*b

deftest_1(f,c):

return f*c

print(test_1(test(1,2),5))

執行結果:

10

2:函式即變數

def

foo():

print("

in the foo")

bar()

defbar():

print("

in the bar")

foo()

執行結果:

inthe foo

in the bar

def

bar():

print("

in the bar")

deffoo():

print("

in the foo")

bar()

foo()

執行結果:

inthe foo

in the bar

def

foo():

print("

in the foo")

bar()

foo()

defbar():

print("

in the bar")

執行結果:

nameerror:name bar

isnot defined

分析:之所以會出現上面的結果,在定義foo函式的時候,在內容位址中把foo函式的函式體存在了記憶體當中,而foo相當於變數指向了那個記憶體位址,而在呼叫foo函式的時候,當執行到bar()函式的時候,bar函式這個變數還沒有指向記憶體中的位址,所以才出現上面這種情況。

另外,一旦記憶體中的位址沒有被變數指向了,就會被python的**機制不定時的被清理掉,當然自己也可以用del 方向刪除記憶體位址的指向(del只是刪除的是記憶體位址的指向,並沒有刪除記憶體位址,記憶體位址是python的**機制當存在的記憶體位址沒有被變數指向了就會被清理。

python 函式高階 python 函式高階

形參角度 萬能引數 動態接收位置引數 args 動態接收關鍵字引數 kwargs 的魔性用法 函式定義時 代表聚合。他將所有的位置引數 聚合成乙個元組,賦值給了args 函式定義時 將所有的關鍵字引數聚合成乙個字典中,將這個字典賦給了 kwargs 和 在函式的呼叫時 代表打散 僅限關鍵字引數 de...

python高階函式和匿名函式

高階函式 允許將函式本身作為引數傳入另乙個函式 允許返回乙個函式。允許返回乙個函式。map 函式 map的第乙個引數為自定義函式,第二個引數為自定義可迭代物件 例子 定義乙個函式f2求平方,使用map函式,求list1的值的平方,list1平方規則按照f2函式執行,返回結果型別為list。list1...

python巢狀函式和高階函式

python巢狀函式和高階函式 1.巢狀函式 函式巢狀 在乙個函式的函式體內用def宣告,不加叫呼叫 def grandpa x 1def dad x 2def son x 3print x son dad grandpa 2.高階函式 2.1定義 將乙個函式作為變數傳給另乙個函式 import t...