python - 使用或不带参数调用方法?
问题描述
有没有办法缩短这个或跳过 if-else 检查:
if kv is None : self.obj.generate()
else : self.obj.generate(**kv)
解决方案
试试这个代码:
li = [{},kv]
self.obj.generate(**li[bool(kv)])
您为 2 个结果生成一个 2 元素列表。
您使用列表中的两个元素之一调用您的方法;bool(kv) 是你的开关。
如果 kv 为 None(或 0),则 bool(kv) 变为 False(相当于 0)
如果 kv 不是 None,bool(kv) 变为 True(相当于 1)
当然,您可以在一行中完成所有操作:
self.obj.generate(**[{},kv][bool(kv)])
推荐阅读
- git - Git rebase:生成 TODO 然后稍后继续
- javascript - 有没有办法在Javascript中重新创建跨度?
- reactjs - 如何将自定义工具提示添加到 nivo 图表?
- flutter - 如何为 Flutter Web 添加 Firebase 预构建的身份验证 UI?
- android - 创建新的 User 对象时如何避免 KotlinNullPointerException?
- c# - 如何设置 mockRepository 返回方法以返回 IEnumerable
? - ruby - Capybara default_max_wait_time 不适用新的时间
- datatable - 在 Azure 数据资源管理器表中设置永久数据
- python - 无法为使用 PEP 517 且无法直接安装的 PyNaCl 构建轮子
- php - .htaccess 将 REQUEST_METHOD 更改为 GET - 如果 URL 没有参数或尾部斜杠