我想检查用户是否设置了可选的 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
def main():
parser = argparse.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
关于python - 检查是否设置了 argparse 可选参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30487767/