lin*_*usg 18 python pep8 pep pycharm
"Dunder"(定义d ouble 下得分):http://www.urbandictionary.com/define.php?term=Dunder
我有根据的模块级"dunders"(如放置的问题__all__,__version__,__author__在Python代码等).
这个问题向我走来,通过阅读而PEP8,看到这个堆栈溢出问题.
接受的答案是:
__author__是一个全局"变量",因此应该出现在导入之下.
但是在PEP8部分模块级别的dunder名称中我读了以下内容:
模块级"dunders"(即名称具有两个前缘和两个纵下划线),例如
__all__,__author__,__version__等应被放置在模块文档字符串之后,但在除了从任何导入语句__future__进口.Python要求future-imports必须在除docstrings之外的任何其他代码之前出现在模块中.
作者还给出了一个代码示例:
"""This is the example module.
This module does stuff.
"""
from __future__ import barry_as_FLUFL
__all__ = ['a', 'b', 'c']
__version__ = '0.1'
__author__ = 'Cardinal Biggles'
import os
import sys
Run Code Online (Sandbox Code Playgroud)
但是当我将上述内容放入PyCharm时,我看到了这个警告(也见截图):
PEP8:模块级别导入不在文件顶部
问题:使用双下划线存储这些变量的正确方法/位置是什么?
Mar*_*ers 19
PEP 8最近更新了,以便在进口之前放置位置.请参阅2016年6月7日提交的修订版cf8e888b9555:
放松的
__all__位置.将所有模块级别的dunder放在同一位置,并删除冗余版本的簿记信息.
结束#27187.Ian Lee的补丁.
该文本在第二天进一步更新,以解决from __future__ import ...警告.
补丁链接到问题#27187,后者又引用了这个pycodestyle问题,发现PEP 8不清楚.
在此更改之前,因为模块级dunder全局变量没有明确的指导原则,所以PyCharm和其他答案在当时是正确的.我不确定PyCharm如何实施他们的PEP 8检查; 如果他们使用pycodestyle项目(事实上的Python样式检查器),那么我相信它会自动修复.否则,可能会向他们提交一个错误,看看它是否已修复.
| 归档时间: |
|
| 查看次数: |
2744 次 |
| 最近记录: |