这些元素在 Python 模块中的顺序是什么?

aug*_*men 3 python

如果存在,这些元素在 Python 模块中声明的顺序是什么?

  • 哈希爆炸 ( #!/usr/bin/env python)
  • 编码 ( # coding: utf-8)
  • 未来进口 ( from __future__ import unicode_literals, ...)
  • 文档字符串

如果最后声明,文档字符串会在调用中工作help(module)吗?

Tho*_*mas 5

  1. 哈希爆炸。内核从字面上看文件的前两个字节,看它们是否等于#!,否则它不会工作。

  2. 编码。根据Python Language Reference,它必须“在第一行或第二行”。

  3. 文档字符串。根据PEP 257,文档字符串是“作为模块、函数、类或方法定义中的第一条语句出现的字符串文字”,因此它不能出现在任何导入语句之后。你可以亲眼看到,help(module)如果你把它放在不同的地方,它就不再报告你的文档字符串。

  4. 未来进口,因为它们不能在上述任何一个之前进行。