擅长:python、mysql、java
<p>不,这在每个文件的基础上是不可能的,因为在执行任何文件之前,以及在检查任何断言之前,都会对整个文件进行解析<code>try</code>也不起作用,因为同样的原因</p>
<p>唯一可行的方法是,通过将代码放入字符串并调用<code>eval</code>,将部分代码的解析推迟到运行时,但是。。。不要那样做。您有两个明智的选择:根本不使用f字符串,或者让它以<code>SyntaxError</code>而不是您自己的自定义错误消息失败</p>
<p>或者,如果您在Unix或Linux系统上工作,那么您可以将文件标记为可执行文件,并在开始时给它一个<a href="https://en.wikipedia.org/wiki/Shebang_(Unix)" rel="nofollow noreferrer">shebang</a>行,如<code>#!/usr/bin/python3.8</code>,这样用户就不需要知道正确的版本来使用自己</p>
<p>如果您想在每个模块的基础上进行此操作,请参见@Chris的答案</p>