有没有办法在 f 字符串中包含注释?

Is there a way to include a comment in an f-string?

mo 在 f 字符串中包含注释会很有用。例如,拿这个代码:

f"""
<a
   href="{ escape(url) }"
   target="_blank" { # users expect link to open in new tab }
>bla</a>
"""

如果这段代码等价于:

就好了
f"""
<a
   href="{ escape(url) }"
   target="_blank" 
>bla</a>
"""

您可以在大括号之间包含完整的 Python 表达式,但看起来您不能包含注释。我对么?有办法吗?

来自PEP498

Comments, using the '#' character, are not allowed inside an expression.

除了在Python中放一个'#'字符外,没有办法评论,所以不可能。

没有。 f-string中没有注释

构建 str 时,模板引擎可能有点矫枉过正。加入 liststr 可能是可取的。

s = ''.join([
    '<a',
    f' href="{escape(url)}"',
    ' target="_blank">',
    # users expect link to open in new tab
    'bla</a>',
])

您不能在表达式内写评论。但是您可以在多个片段中编写一个字符串,并在 2 个片段之间写一个注释,前提是下一个片段从不同的行开始:

s = (f"""
<a
   href="{ escape(url) }"
   target="_blank" """ # users expect link to open in new tab
f""">bla</a>
""")