我有點困惑問題是什麼......下面是我把一些代碼放在一起。
>>> import optparse
>>> import shlex
>>> parser = optparse.OptionParser()
>>> parser.add_option('--build',type=str,default=None)
<Option at 0x...: --build>
在「命令行」上提供--build
選項。
>>> options, args = parser.parse_args(shlex.split("--build=None"))
>>> print options
{'build': 'None'}
>>> options.build is None
False
>>> options, args = parser.parse_args(shlex.split(""))
上的「命令行」
>>> print options
{'build': None}
>>> options.build is None
True
沒有給出--build
選項正如你可以看到,如果--build
不設置在命令行上,則默認爲None
(即物體與NoneType
類型)。如果提供構建並且字符串==「無」,則返回字符串「None」。
如果您堅持在命令行上傳遞--build=None
,那麼您希望optparse處理該標誌有點含糊不清。例如,如果它是一個路徑,你可以編寫一個函數來檢查路徑是否存在:例如
import os.path
def path_exists(p):
if(os.path.exists(p)): return p
else: return None
...
parser.add_option('--build',type=path_exists,default=None)
當然,path_exists可以像您希望它爲您的應用程序一樣複雜。
我覺得它不是'NONE',你可以在你的'dictionary'查找,看看有什麼'function'你可以使其儘快映射'string'投入使用'dictionary'的功能,呼叫。但是由於它來自命令行參數,我認爲最好堅持'optparse',甚至是'argparse':http://docs.python.org/library/argparse.html#module-argparse – George 2012-04-07 21:13:24
我們可以看到代碼? – 2012-04-07 22:27:54