函式分類:內建函式,三方函式,自定義函式
直接在函式體的最上面使用三個雙引號對注釋
說明的資訊:
def
caculate
(a, b)
:"""
:param a:
:param b:
:return:
"""pass
help
(caculate)
help on function caculate in modulemain:
caculate(a, b)
:param a:
:param b:
:return:
當我們寫乙個引數比較多的函式時,如果有些引數,大部分場景下都是某乙個固定值,那麼為了簡化使用,就可以建立乙個新函式,指定我們要使用的函式的某個引數,為某個固定的值;這個新函式就是偏函式。
借助functools模組的partial
import functools
deftest
(a, b, c, d=1)
:print
(a + b + c, d)
newfunc = functools.partial(test, c=5)
print
(newfunc,
type
(newfunc)
)newfunc(1,
2)
functools.partial(, c=5)
8 1
import functools
numstr =
'100010'
result =
int(numstr, base=2)
print
(result)
int2 = functools.partial(
int, base=2)
print
(int2(numstr)
)
34
34當乙個函式a的引數,接收的又是另乙個函式時,則把這個函式a稱為高階函式
l =[,
,,]def
getkey
(x):
return x[
'age'
]result =
sorted
(l, key=getkey)
print
(result)
[, , ]
應用場景:
def
caculate
(num1, num2, caculatefunc)
:print
(caculatefunc(num1, num2)
)def
sum(a, b)
:return a + b
caculate(1,
2,sum)
乙個函式內部,它返回的資料是另外乙個函式
def
getfunc
(flag)
:# 再次定義幾個函式
defsum
(a,b,c)
:return a + b + c
defjian
(a, b, c)
:return a - b - c
if flag ==
'+':
return
sumelif flag ==
'-':
return jian
result = getfunc(
'+')
print
(result,
type
(result)
)res = result(1,
3,5)
print
(res)
9沒有名字的函式
lambda 引數1, 引數2: 表示式
只能寫乙個表示式,不能直接return
表示式的結果就是返回值
result =
(lambda x, y: x + y)(1
,2)print
(result)
newfunc =
lambda x, y: x + y
print
(newfunc(4,
5))
3
9
l =[,
,,]result =
sorted
(l, key=
lambda x: x[
'age'])
print
(result)
[, , ] python 函式高階 python 函式高階
形參角度 萬能引數 動態接收位置引數 args 動態接收關鍵字引數 kwargs 的魔性用法 函式定義時 代表聚合。他將所有的位置引數 聚合成乙個元組,賦值給了args 函式定義時 將所有的關鍵字引數聚合成乙個字典中,將這個字典賦給了 kwargs 和 在函式的呼叫時 代表打散 僅限關鍵字引數 de...
Python高階 函式高階
閉包 closure 常規函式中可以在函式的引數中新增引數的預設值來簡化函式的操作,偏函式也可以做到這一點,而且會更加的方便管理函式的操作。通過內建模組functools的partial進行定義和處理 語法結構 新函式名稱 functools.partial 函式名稱,預設賦值引數 例如 全域性函式...
python 函式 高階函式
filter 函式是 python 內建的另乙個有用的高階函式,filter 函式接收乙個函式 f 和乙個list,這個函式 f 的作用是對每個元素進行判斷,返回 true或 false,filter 根據判斷結果自動過濾掉不符合條件的元素,返回由符合條件元素組成的新list。例如判斷奇偶數 def...