注释中写了python语法的哪一部分?

时间:2019-09-20 00:26:30

标签: python-3.x

在python文档中,发现了一个奇怪的地方。

# -*- coding: ascii -*-

上面的代码应该将文件的其余部分的编码格式设置为ASCII。

现在documentation说:

  

如果Python脚本第一行或第二行中的注释与正则表达式编码[=:] \ s *([-\ w。] +)相匹配,则此注释将作为编码声明处理;此表达式的第一组命名源代码文件的编码。编码声明必须单独出现。如果是第二行,则第一行也必须是仅注释行。推荐的编码表达式形式为

     

# -*- coding: <encoding-name> -*-

     

也被GNU Emacs识别,并且

     

# vim:fileencoding=<encoding-name>

     

已被Bram Moolenaar的VIM认可。

编码声明必须单独出现在一行上。如果是第二行,则第一行也必须是仅注释行。

我们对此进行了测试,在编码“注释”之前添加了空行。不出所料,编码没有发生。

在文档的上面,我们可以找到:注释被语法忽略。

我很难理解这两条信息如何协同工作,因为它们对我来说是直接矛盾的。

这也让我感到非常奇怪。如果我想更改一段代码的设置,我希望使用某种常量或修改根对象,就像这样。

所以我的问题是:

这是在Python语法中唯一使用注释有意义的情况吗?这种行为从何而来?为什么选择这个?

我以前的理解方式是编辑器设置编码。编辑者可以查找评论,因此对我来说很有意义。但是经过更多研究,事实并非如此,python解释器实际上解决了该注释。这让我感到困惑。

在这个问题上我没有什么可以找到的,只有另一个问题,但是它不能回答我的任何问题。

Python Encoding Comment Format

0 个答案:

没有答案