簡體   English   中英

如何將關鍵字傳遞給函數以使用默認參數

[英]how to pass a keyword to the function to use the default argument

我應該傳遞什么來使用“名稱”的默認值? 我不想顯式傳遞'lisa',因為它是默認參數,用戶可能不知道。 但是如果我傳遞一個變量“name”,我必須使用if else子句來傳遞函數才能打印“lisa”。

def print_name(name='lisa'):
    print name

if name != '':
    print_name(name) 
else:
    print_name()  # print lisa

你可能想要的是使函數更復雜:

def print_name(name=None):
    if not name:
        name='lisa'
    print name

...所以你可以簡單地調用它:

print_name(name)

if not name:只要name是任何假的,都將為真 - 無論是默認值None還是空字符串。 這可能不是你想要的 - 也許你想明確地將默認值設置為''並檢查if name == '':例如 - 但它通常是一個很好的第一個猜測。


所以:

>>> name = ''
>>> print_name(name)
lisa
>>> name = 'alis'
>>> print_name(name)
alis

...但你仍然可以這樣做:

>>> print_name()
lisa

...這可能是您首先添加默認值的原因。

暫無
暫無

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

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