x='''
print '\tone \'piece\' of \"metal\" with \\sharp\\ edge '
print '\nthanks'
'''
exec(x)
私は文字列変数(x)を持っていて、正しく出力するためにexec()を使いたいです。私は直接のような、R」および問題解決を使用することができます変数にアクセスしている場合:python:キャストしたり、変数の文字列をrawに変換する方法
x=r'''
print '\tone \'piece\' of \"metal\" with \\sharp\\ edge '
print '\nthanks'
'''
exec(x)
しかし、この場合は、私は変数にアクセスすることはできません。文字列変数は、他のエンドまたは他のユーザーから来ます。どのように私はexec()を使用することができますので、私は既存の変数にこのr 'を適用することができます。
正しい出力は次のようになります。
one 'piece' of "metal" with \sharp\ edge
thanks
実際のケースがある:私のソフトウェアインサイド
、私はオブジェクトを作成することができ、それぞれこのオブジェクトは、テキスト入力やボタンなどの性質を持つことができます。このテキストの入力とボタンのプロパティは、object.text_inputとobject.buttonとなります。例えば、AAとBBの2つのオブジェクトがあり、AA.text_input(object1のテキスト入力)に式/スクリプトを入力します。 BB(object2)からAA.text_inputに入力された式を使用し、exec()を使用して実行します。だからBB.button私はexec(AA.text_input)のようなコードを書くでしょう。だから私はAAからのデータを取得する文字列になります。問題は、AAのテキスト入力のコードタイプが、エスケープ文字などを含む任意の文字を含む可能性があることです。だから私はBBでexec()を使用すると、それらの文字のためにエラーが発生します。したがって、質問:BB.text_inputからその文字列をAAに正しく移動する方法は?
あなたが解決したい本当の問題は何ですか? – holdenweb
生の文字列は、インタプリタがタイプ可能なものから適切なバイトに到着するのに役立ちます。バイトがすでに存在する場合、多くの正当性が残っていません。だから、どちらのフォーマットがもう一方の端から来て、代わりに何を期待していますか? – guidot
私は上記の質問を更新しました。plsは見ています。たくさんありがとうございます – andio