「np.pi」などのコマンド文字列を受け取り、その文字列で変数を定義しようとするpython 3関数があります。次に、変数を返そうとしますが、これは機能しません。
input = np.pi
astring = 'funcD(funcC(funcB(funcA(input))))'
def function(astring):
astring= 'variable = ' + astring
exec(astring)
return variable
In: a = function(astring)
Out: NameError: global name 'variable' is not defined
何も起こらなかったようです。私が望むのは、関数がコマンドの出力を文字列で返すようにすることです。文字列には、以下のようにお互いを入力として持つ複数の関数が含まれています。変数 = を追加せずに return の後に exec を配置してから、= 関数 (astring) を使用して関数を呼び出してみましたが、それも機能しませんでした。文字列に関数が含まれているため、evalを使用できないと思います。