【发布时间】:2018-01-23 07:05:45
【问题描述】:
x='''
print '\tone \'piece\' of \"metal\" with \\sharp\\ edge '
print '\nthanks'
'''
exec(x)
我有一个字符串变量 (x),我想使用 exec() 将其正确打印出来。如果我可以访问变量,我可以直接使用 r' 并解决问题,例如:
x=r'''
print '\tone \'piece\' of \"metal\" with \\sharp\\ edge '
print '\nthanks'
'''
exec(x)
但在这种情况下,我无权访问该变量。所以字符串变量来自另一端或其他用户。那么如何将此 r' 应用于现有变量,以便我可以使用 exec() 。
正确的输出应该是:
one 'piece' of "metal" with \sharp\ edge
thanks
真实情况是:
在我的软件中,我可以创建对象,每个对象都可以具有文本输入和按钮等属性。我将此文本输入和按钮属性称为 object.text_input 和 object.button。假设我有 2 个名为 AA 和 BB 的对象,并且我在 AA.text_input 中输入了一个表达式/脚本(object1 的文本输入) .现在从 BB (object2) 我想使用在 AA.text_input 中输入的表达式并使用 exec() 执行它。所以在BB.button中我会写一个代码,例如:exec(AA.text_input)。所以我从 AA 获取的数据将是一个字符串。问题是 AA 文本输入中的代码类型可能包含任何字符,包括转义字符和其他字符。因此,当我在 BB 中使用 exec() 时,我会因为这些字符而出错。所以问题是:如何将该字符串从 BB.text_input 正确带到 AA?
【问题讨论】:
-
你想要解决的真正问题是什么?
-
原始字符串有助于解释器从可键入的内容中获取适当的字节。如果字节已经存在,那么就没有多少理由了。那么:哪一种格式来自另一端,你期望什么?
-
我已经更新了我上面的问题,请看看。非常感谢
-
您输入的
\n与真正的换行符没有区别。
标签: python string type-conversion rawstring