我想检查用户是否设置了可选的argparse参数。
我可以安全地使用isset检查吗?
像这样:
if(isset(args.myArg)):
#do something
else:
#do something else
这对于float/int/string类型参数是否起作用?
我可以设置一个默认参数并进行检查(例如,设置myArg = -1,或为字符串““或” NOT_SET“)。但是,我最终要使用的值仅在脚本的稍后部分计算。因此,我会将其默认设置为-1,然后稍后将其更新为其他内容。与仅检查该值是否由用户设置相比,这似乎有点笨拙。
最佳答案
我认为,如果未提供可选参数(用--
指定),则会初始化为None
。因此,您可以使用is not None
进行测试。请尝试以下示例:
import argparse as ap
def main():
parser = ap.ArgumentParser(description="My Script")
parser.add_argument("--myArg")
args, leftovers = parser.parse_known_args()
if args.myArg is not None:
print "myArg has been set (value is %s)" % args.myArg