【发布时间】:2018-03-07 12:45:11
【问题描述】:
我正在尝试确保用户参数是某种类型,当从 cmd 行运行脚本时,使用 -> python Script.py argv1 argv2 argv3 etc...
这个想法是,如果用户只输入 2 个命令行参数,则 arg_list 中的其余变量将默认。我想确保他们确实输入的是正确的类型。
下面是我所遇到的情况的模拟。在 if 条件失败的那一刻,它不会被 except 块拾取(有没有办法解决这个问题??)实际上有更多的变量,因此为每个 if 子句设置 try-except 是不切实际的。
arg1 = 3.14
arg2 = "Default 1"
arg3 = "Default 2"
arg4 = True
arg_list = [arg1, arg2, arg3, arg4]
for i in range(1, len(sys.argv)):
try:
if i==1:
arg_list[i-1] = float(sys.argv[i])
elif i==2 or i==3:
arg_list[i-1] = str(sys.argv[i])
else i==4:
arg_list[i-1] = bool(sys.argv[i])
except TypeError as e:
# do stuff
任何帮助都会很棒,谢谢!
【问题讨论】:
标签: python types casting try-catch