0

私はこのようなことをしようとしています

文字列内の数式の評価

更新 - アプリに関する詳細

アプリは、いくつかの変数をユーザーに「公開」します。公開された変数の例は、user_name です。アプリのユーザーは、user_name.upper() として設定できる「user_name_upper」という新しい変数を作成できます。もう 1 つの例は、公開された変数 first_name と last_name で、ユーザーは「full_name = last_name.upper() + ',' + first_name.upper()」という名前の新しい変数を作成できます。これは、入力ボックスの UI 要素を使用して入力されます。したがって、プログラムへのフックはありません。または、これを Excel のようなレポートと考えてください。新しい列を作成して、既に定義されている変数を操作することができます。

このアプリのユーザーはプログラマーではありません。ただし、文字列操作を回避する方法を見つけるために、例のリストを与えることができます

ただし、私の式は文字列操作に使用されます。「string3 = string1 + string2」のようなもの。ここで、string3 の値を、string2 を追加した string1 の値に設定したいと思います。または「string1 = string2.lower()」

私が調査した結果、eval は使用できるが非常に危険であるという結論に達しました。私が理解していることから、ast_literal_eval() は、ここで説明されているように、lower() のような文字列操作メソッドでは機能しません。

これをどうするかについて何か提案はありますか?

4

2 に答える 2

-2

これを使用する他の方法をお勧めしますが、動的変数を使用する必要がある場合 (それらが何と呼ばれるか、またはいくつあるかがわからない場合)、辞書がうまく機能することがわかります。

元:

def createVariable(variables, string1, string2):
    variables[string1] = string2.lower()
于 2013-04-08T16:29:39.593 に答える