私はちょっと混乱しています。問題は...私がまとめたコードです。
>>> import optparse
>>> import shlex
>>> parser = optparse.OptionParser()
>>> parser.add_option('--build',type=str,default=None)
<Option at 0x...: --build>
「コマンドライン」に--build
オプションを指定します。 「コマンドライン」
>>> print options
{'build': None}
>>> options.build is None
True
に与えられた
>>> 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(""))
ん--build
オプションあなたが見ることができるように、--build
は、コマンドラインで提供されていない場合は、それ(タイプNoneType
と、すなわちオブジェクト)None
デフォルト。 buildが提供され、文字列== "None"の場合、文字列 "None"を返します。
--build=None
をコマンドラインで渡すことを強くお勧めする場合、optparseでそのフラグを使用したいと思っているのはあいまいです。たとえば、パスであれば、パスNoneが存在するかどうかをチェックする関数を書くことができます。
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はアプリケーションにとって必要なほど複雑なものになることがあります。
コール。しかし、それはコマンドライン引数から来ているので、私は 'optparse'や' argparse'を使うのが最善だと思います:http://docs.python.org/library/argparse.html#module-argparse – George
コードを見ることはできますか? ? –