私は自分の小さなコマンドラインインターフェイスをPythonで作成しています。コマンドの1つは「export」です。これは基本的に変数を作成します。例:Python辞書から変数を作成する
> export NUM=15
ここでNUMは '15'になります。 CLIで他のコマンドと一緒に「NUM」を使用すると、数字「15」と同じになります。出力は「F」でなければなりません
> hex NUM
が、プログラムはNUM = 15を認識しません:私は進に小数を変換し、別のコマンド「進」を持っています。関数の外で変数辞書を宣言しました。 CLI.py
全体を投稿するつもりはありませんが、ここにエクスポート機能があります。基本的には、変数辞書にkey=value
を割り当てる必要があります。
def CommandExport(args):
if (len(args) == 0):
print(variables)
else:
for line in args:
args = line.split('=')
ENV = args[0]
value = args[1]
if (int(args[1]) == True):
value = int(value)
else:
value = str(value)
variables[ENV] = (value)
for ENV, value in variables.items():
vars()[ENV] = (value)
return(ENV)
return(value)
return(variables)
動作するはずですが、そうではありません。何か案は?
最初の呼び出しの 'return(ENV)'の後に関数が返るので、 'return(value)'と 'return(variables)'は決して実行されません。代わりに、 'ENV、value、variablesを返す'の場合、かっこは必要ありません。 – DavidG
@DavidGでも正しいものではありません。これらのreturn文はforループ内にあるため、最初の繰り返しの後に戻ります。私はOPが実際に戻ってくる必要はないと思う。 –