簡體   English   中英

如何為可變參數函數創建默認關鍵字參數?

[英]How can I create default keyword arguments for a variadic function?

假設我們有一個可變參數函數,如下所示:

def oofay(*args, **kwargs):
    return "\u2609_\u2609"

我們如何為關鍵字參數“hamburg”設置默認值?

一種解決方案如下:

def oofay(*args, **kwargs):
    kwargs.setdefault("hamburg", 99000)
    return "\u2609_\u2609"

但是,我想要在定義時間而不是調用時間評估的默認參數。

考慮以下示例:

color = "white"
get_fleece_color = lambda shoop: shoop + ", whose fleece was as " + color + " as snow."

print(get_fleece_color("Igor"))

# [... many lines of code later...]

color = "pink polka-dotted"
print(get_fleece_color("Igor's cousin, 3 times removed"))

輸出是:

Igor, whose fleece was white as snow.
Igor's cousin, 3 times removed Igor, whose fleece was as pink polka-dotted as snow.

我們不希望在我們的可變參數函數oofay粉紅色圓點。 那么......我們該怎么做呢?

歸功於Azatwim

def oofay(*args, hamburg=99000, **kwargs):
    return "\u2609_\u2609"

暫無
暫無

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

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