私はgetoptを使ってコマンドライン引数を抽出し、提供された値を修飾し、その値をループの制限として使うスクリプトを書いています。コードの一部は次のとおりです。Python組み込みの範囲関数と変数の値
try:
start_pod, end_pod, topo_value = map(int, args)
except ValueError, error_msg:
if 'invalid' in str(error_msg):
err_funct('Non-integer values supplied: {%s}' % args)
else:
err_funct(error_msg)
for pod in range(start_pod, end_pod):
print 'value of pod: %s' % pod
for switch in range(1,5):
print 'value of switch: %s' % switch
問題は、「範囲」機能にあります。私は整数を渡していると思います(マップ関数は文字列のリストを整数に変換しています)。もし私がtry/exceptハンドラではなく、私が書いたエラー関数を使って終了したのですが、何らかの理由でこれが動作しません。
スクリプトを正しい入力数で呼び出すと、たとえば、次のようになります。 'some_script.py 1 1 5'、スクリプトは何も返しません。