我正在努力通过PEP 498。也许我不太了解这个概念,但我怎么可能将常规 Python 字符串转换为格式化的字符串文字并在运行时对其进行评估?
假设你有一个字符串:
some_string = 'Name: {name}'
如果它是格式化的字符串文字,则以下内容将起作用:
name = 'Demo'
some_string_literal = f'Name: {name}'
some_string_literal == 'Name: Demo' # returns True
忽略这是否有意义的问题,我怎么能例如some_string
在运行时从文件中读取内容,将其转换为some_string_literal
并评估它?我对底层 CPython 实现的理解是字符串文字在编译时被解释(翻译成字节码)。
我知道仅使用...的更“明确”选项
some_string = 'Name: {name}'
some_string.format(name = 'Demo') == 'Name: Demo' # returns True
...但这不是我要找的。
编辑:评论中指出,“显式”选项是我应该寻找的。我同意我在这里提出的问题在很多方面肯定是不安全的。不过,我对是否有办法做到这一点很感兴趣。