蟒蛇条件式铸造

蟒蛇条件式铸造

问题描述:

我想,以确保用户的参数是某一类型,当从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]