返回函式
pass
裝飾器函式
在執行原函式的基礎上,處理一些額外資訊,eg.輸出執行時間、輸出函式名稱等
摘錄了廖雪峰的python學習**的一些筆記:
裝飾器 - 廖雪峰的官方**
以**示人
# -*- coding: utf-8 -*-
"""created on sun sep 15 11:12:50 2019
@author: yugar
"""'version1'
# *引數接收 元組,**引數接收 字典
deflog
(func)
:# 引數設定為* ** 是因為這樣可以接受任何引數
def(
*args,
**kw)
:print
('call %s():'
% func.__name__)
# 輸出函式名
return func(
*args,
**kw)
@log
# 等價於 now = log(now)
defnow()
:print
('2019-9-15'
)# 現在的now()依然存在,只是now指向了乙個新的函式,
'version2'
deflog
(txt)
:# 'execute'
defdecorator
(func)
:# now
def(
*args,
**kw)
:print
('%s %s():'
%(txt, func.__name__)
)return func(
*args,
**kw)
return decorator
@log(
'execute'
)# => now = log('execute')(now)
defnow()
:print
('2019-9-15'
)# 現在的now()依然存在,只是now指向了乙個新的函式,
print
(now.__name__)
now(
)# 需要用 @functools.wrpas(func) 包裹
# 讓其顯示原來呼叫的函式名
version2可以多顯示乙個引數資訊p,而引數p事先放在@log()中
'version3'
import functools
deflog
(func)
: @functools.wraps(func)
def(
*args,
**kw)
:print
('call %s():'
% func.__name__)
return func(
*args,
**kw)
@log
defnow()
:pass
print
(now.__name__)
# 『now'
以下觀點摘錄了一些碼友關於裝飾器的一些理解: python返回函式 python中返回函式
python的函式不但可以返回int str list dict等資料型別,還可以返回函式!例如,定義乙個函式 f 我們讓它返回乙個函式 g,可以這樣寫 deff print call f 定義函式g defg print call g 返回函式g return g 仔細觀察上面的函式定義,我們在函...
python返回 python 返回函式
返回函式 1.高階函式除了能夠接收函式作為引數外,還能把函式作為結果返回 2.例如乙個求和函式,通常情況下的定義以及呼叫 def sum nums x 0for n in nums x x n return x sum 1,2,3,4,5 不返回求和的結果,而是返回求和的函式 def sum 1 n...
python 返回函式
返回函式 python的函式不但可以返回int str list dict等資料型別,還可以返回函式!例如,定義乙個函式 f 我們讓它返回乙個函式 g,可以這樣寫 deff print call f 定義函式g defg print call g 返回函式g return g仔細觀察上面的函式定義,...