[英]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.