3 回答

TA貢獻(xiàn)1866條經(jīng)驗(yàn) 獲得超5個(gè)贊
您可以使用functools.partial:
functools.partial(func, /, *args, **關(guān)鍵字)
返回一個(gè)新的部分對(duì)象,當(dāng)調(diào)用該對(duì)象時(shí),其行為類(lèi)似于使用位置參數(shù) args 和關(guān)鍵字參數(shù) keywords 調(diào)用的 func。
from functools import partial
def add(a,b,c):
return a+b+c
如果你想給第一個(gè)位置參數(shù)一個(gè)固定的值,你可以這樣做
add5 = partial(add, 5)
print(add5(1, 2))
# 8
由于第一個(gè)位置參數(shù) (a) 將替換為 5,因此您不能:
print(add5(a=3, b=4))
# TypeError: add() got multiple values for argument 'a'
如果要控制修復(fù)哪個(gè)參數(shù),請(qǐng)使用關(guān)鍵字參數(shù):
add5 = partial(add, b=5)
print(add5(a=1, c=2))
# 8

TA貢獻(xiàn)2011條經(jīng)驗(yàn) 獲得超2個(gè)贊
在 Python 中,函數(shù)是第一類(lèi)對(duì)象,這意味著 –
函數(shù)是對(duì)象;它們可以被引用,傳遞給變量,也可以從其他函數(shù)返回。
函數(shù)可以在另一個(gè)函數(shù)中定義,也可以作為參數(shù)傳遞給另一個(gè)函數(shù)。
裝飾器是 Python 中非常強(qiáng)大和有用的工具,因?yàn)樗试S程序員修改函數(shù)或類(lèi)的行為。裝飾器允許我們包裝另一個(gè)函數(shù)以擴(kuò)展包裝函數(shù)的行為,而無(wú)需永久修改它。
在裝飾器中,函數(shù)被作為另一個(gè)函數(shù)的參數(shù),然后在包裝函數(shù)內(nèi)部被調(diào)用。
在你的情況下:
def my_custom_decorator(f):
def outer_function(*args):
res = f(*args)
return res + 5
return outer_function
@my_custom_decorator
def A_and_C(a, c):
return a+c
print(A_and_C(2,3))

TA貢獻(xiàn)1859條經(jīng)驗(yàn) 獲得超6個(gè)贊
你可以這樣做
def add5(*arg):
return sum(args)+5
print(add5(1,2))
這將對(duì)您傳遞給函數(shù)的所有參數(shù)求和,并將 5 添加到參數(shù)的總和中。輸出
8
添加回答
舉報(bào)