python - 如何对带有预定义参数的函数使用 if 语句
问题描述
这是我的代码:
def characters(a=''):
if a:
for c in Characters:
b=c
print(b)
else:
for char in Characters:
yield char
我想要的是,每当在没有参数的情况下调用函数时,它应该在字典“Characters”中打印键,并且当给出参数时,它应该返回键而不是打印它们。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')
的事情,做其他事情(其他值会导致异常)。
推荐阅读
- django - 如何在 Django 中使用计数进行反向关系查询
- python - 如何使用 Tensorflow BatchDataset 训练模型?
- c# - 从 URL 返回文件作为 IActionResult
- python - 删除数据框列中的数字
- autodesk-forge - 为什么文本标记不采用小于 0.005 的字体大小,我需要为此做些什么吗?
- r - 是否可以并行运行 mvabund::anova.manyglm ?
- php - 我应该为 action 属性分配什么值?
- firebase - 授予多个用户访问权限的 Firebase 安全规则不起作用
- slack-api - 如何使用 Slack API 订阅线程?
- python - 将多个散景图集成到 Django