2015-01-05 26 views
0

我有一些舊的代碼,它有optparse作爲它們的參數庫。它有類型作爲參數之一Argparse有類型作爲選擇

type = "choice" 

我想轉換我的代碼有argparse。我應該輸入什麼類型?如果我添加類型=選擇它拋出一個錯誤:

NameError: global name 'choice' is not defined 

應該是什麼類型的值,在這裏如果我使用argparse?

回答

2

optparsechoice類型只是string的特殊形式。從optparse documenattion

"choice" options are a subtype of "string" options. The choices option attribute (a sequence of strings) defines the set of allowed option arguments.

你並不需要指定本作中​​一個類型;所有你需要提供的是選擇。如果您想明確說明,則完全刪除type參數,或將其設置爲str

另請參閱choices documentation​​;這比optparse靈活得多,因爲這也允許選擇是字符串以外的類型。

+0

但是,當我添加str或remove類型的時候,我運行我的代碼這樣說:python try1.py --help然後它打印幫助信息特定於該參數以及選擇。當我使用optparse進行工作時,我沒有遇到這樣的問題,我只能獲得特定於該論點的幫助信息。 – blackmamba

+0

@wannaC:我不確定你在這裏問什麼。 'argparse'工作方式不同,它永遠不會產生完全相同的輸出。 –

+0

@wannaC:這聽起來像一個*不同的問題;你使用'type'參數的問題已經解決了,不是嗎? –