如何在隐式字符串连接中处理 f 字符串?

VPf*_*PfB 8 python python-3.x f-string

我犯了这个错误:

key, value = 'K', 999
msg = (
    f"key={key}, "
    "value={value}"  # needs to be prefixed with f as well
    )
# key=K, value={value}
Run Code Online (Sandbox Code Playgroud)

并开始想知道 Python 如何处理复杂的文字连接情况。

我们假设一个字符串是 f 字符串(格式化字符串文字),另一个字符串是普通字符串文字,如上例所示。Python 会在编译时连接这两个字符串吗?如果是,结果是什么?

ely*_*ely 7

来自PEP 498

相邻的 f 字符串和常规字符串被连接起来。常规字符串在编译时连接,f 字符串在运行时连接。

每个 f 字符串在连接到相邻的 f 字符串之前都会被完全评估。