2017-09-26 81 views
0

我想,以確保用戶的參數是某一類型,當從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 

任何幫助將是偉大的,謝謝!

回答

1
typelist = [float, str, str, bool] 

for i, item in enumerate(sys.argv[1:]): 
    assert type(item) == typelist[i]