第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號(hào)安全,請(qǐng)及時(shí)綁定郵箱和手機(jī)立即綁定
已解決430363個(gè)問(wèn)題,去搜搜看,總會(huì)有你想問(wèn)的

Python:通過(guò)修復(fù)其他參數(shù)來(lái)減少函數(shù)中參數(shù)數(shù)量的裝飾器

Python:通過(guò)修復(fù)其他參數(shù)來(lái)減少函數(shù)中參數(shù)數(shù)量的裝飾器

一只萌萌小番薯 2022-11-18 14:09:44
假設(shè)我有這個(gè)功能def add(a,b,c): return a+b+c我想要一個(gè)固定 b 值的裝飾器,比如 5,并返回一個(gè)只有兩個(gè)參數(shù) a 和 c 的函數(shù)。def add5(a,c): return a+c+5函數(shù) add5 不應(yīng)有任何其他參數(shù)。我不想用 b 的默認(rèn)參數(shù)來(lái)解決這個(gè)問(wèn)題。
查看完整描述

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


查看完整回答
反對(duì) 回復(fù) 2022-11-18
?
森林海

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))


查看完整回答
反對(duì) 回復(fù) 2022-11-18
?
慕絲7291255

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


查看完整回答
反對(duì) 回復(fù) 2022-11-18
  • 3 回答
  • 0 關(guān)注
  • 152 瀏覽
慕課專(zhuān)欄
更多

添加回答

舉報(bào)

0/150
提交
取消
微信客服

購(gòu)課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號(hào)

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號(hào)