【发布时间】:2017-05-24 15:19:59
【问题描述】:
有没有办法在 Python 中有条件地传递参数(我使用 Python 2.7)?
例如,此代码给出 2 个或 3 个参数,具体取决于字典中是否存在第三个参数。
if "arg3" in my_dict:
my_method(
my_dict[arg1],
my_dict[arg2],
my_dict[arg3],
)
else:
my_method(
my_dict[arg1],
my_dict[arg2],
)
我认为这样写是多余的。我在argparse 上看到了一些信息,我认为应该是这样的:
import argparse
parser = argparse.ArgumentParser()
parser.add_argument(my_dict[arg1])
parser.add_argument(my_dict[arg2])
if arg3 in my_dict:
parser.add_argument(my_dict[arg3])
args = parser.parse_args()
my_method(args)
我也不太喜欢这种方法,因为它需要导入并且难以阅读。
有没有办法做类似的事情:
my_method(
my_dict[arg1],
my_dict[arg2],
my_dict[arg3] if arg3 in my_dict,
)
或者我想念的任何其他方式,这将是简单和干净的?
【问题讨论】:
标签: python python-2.7 if-statement coding-style arguments