python3中bytes repr()的反转操作是什么?

She*_*Lei 4 python python-3.x

a = b'\x00\x01'
ra = repr(a)   # ra == "b'\\x00\\x01'"
assert invert_repr(ra) == a
Run Code Online (Sandbox Code Playgroud)

invert_repr 的正确形式是什么?字符串转义和unicode_转义?

vau*_*tah 5

使用eval或等效:

from ast import literal_eval
a = b'\x00\x01'
ra = repr(a)
assert literal_eval(ra) == eval(ra) == a # no error
Run Code Online (Sandbox Code Playgroud)

ast.literal_eval比 更安全eval

  • @ShenLei:不,没有其他选择。您有一个 Python 字节字符串文字,这些是您再次解释它的选项。为什么需要这个? (2认同)
  • @ShenLei:那你为什么抱怨速度?您正在调试,而不是编写性能敏感的应用程序。那么为什么不直接腌制呢? (2认同)