簡體   English   中英

在 python 的字典中將默認關鍵字值定義為 function

[英]Defining default keyword values to function in a dictionary in python

我正在寫一個需要很多關鍵字的 function。

我有一本很長的字典,其中包含許多已經存在於我的代碼中並且正在其他地方使用的關鍵字。 例如

{'setting1':None, 'setting2': None....}

我想知道有沒有一種方法,當我定義我的 function 時,我可以將所有這些設置為關鍵字,而不必像這樣再次輸入它們:

def my_function(setting1=None, setting2=None, **kwargs)

需要明確的是,基本上我想將字典的所有內容設置為默認值為 None 的關鍵字,當我調用 function 時,我應該能夠更改它們的值。 所以我不打算在調用 function 時將字典作為 kwargs 提供。

雖然不完全相同,但我通常更喜歡將 arguments 保存在**kwargs中並使用.get()獲取值或None

def my_function(**kwargs):
     do_something(kwargs.get("alpha"), kwargs.get("beta"))

如果鍵存在,則字典上的.get()返回值,或者None一個鍵不存在。 如果願意,您可以選擇指定不同的默認值作為第二個參數。

創建 function 時,您需要實現 arguments 的使用方式。 通過自動創建 arguments 您最終會添加 arguments 並忘記為它們實現行為。

# Manually defined.
def func(a, b, c, d):
    return a + b / c * d

# Auto-defined - Human error.
def func(""" auto define a,b,c,d,e,f,g,h """):
    return a + b / c * d # <- you only use half of the arguments. Confusing at best.

# Auto-defined - Inputs unclear, code is not explicit.
def func(defind_my_args):
    return a + b / c * d 

如果您需要重用“代碼行為”到可以“繼承”參數的程度,也許您應該改用 object。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM