蟒蛇条件式铸造
问题描述:
我想,以确保用户的参数是某一类型,当从CMD符合运行运行脚本 - >蟒蛇Script.py argv1 argv2 argv3等等蟒蛇条件式铸造
的想法是如果用户只输入说2 cmd行参数,arg_list中的其余变量将默认。我想确保他们输入的是正确的类型。
下面是我的情况的模拟。在if条件失败的时候,它不会被except块拾取(是否有解决方法?)实际上,有更多的变量,所以尝试 - 除了每个if子句都不实际。
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
任何帮助将是伟大的,谢谢!
答
typelist = [float, str, str, bool]
for i, item in enumerate(sys.argv[1:]):
assert type(item) == typelist[i]