簡體   English   中英

如何使用帶有預定義參數的 function 的 if 語句

[英]how to use if statement for function with pre-defined argument

這是我的代碼:

def characters(a=''):
    if a:
        for c in Characters:
            b=c
            print(b)
    else:
        for char in Characters:
            yield char

我想要的是,每當 function 在沒有參數的情況下被調用時,它應該打印字典“字符”中的鍵,並且當給出參數時它應該返回鍵而不是打印它們。 else 語句可以工作,但 if 語句不起作用。

if是錯誤的方法——空字符串在 Python 眼中是虛假的。

但是,也許您可能想要一個具有某些語義的參數默認值而不是“沒有參數”?

def characters(mode='print'):
    if mode == 'print':
        for c in Characters:
            print(c)
    elif mode == 'yield':
        for char in Characters:
            yield char
    else:
        raise ValueError('invalid mode')

這種方式characters()默認為打印, characters('print')執行相同操作, characters('yield')執行其他操作(其他值會導致異常)。

你可以嘗試這樣的事情:

def characters(a=""):
    character_keys = list(Characters.keys())
    if a:
        return character_keys
    else:
        print(character_keys)

暫無
暫無

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

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