Python 3.x 在不违反PEP-8的情况下将视图移动到单独的文件
我正在制作一个Flask web应用程序,像往常一样,我的Python 3.x 在不违反PEP-8的情况下将视图移动到单独的文件,python-3.x,flask,pep8,Python 3.x,Flask,Pep8,我正在制作一个Flask web应用程序,像往常一样,我的\uuuu init\uuuu.py是这样的: import a from flask import Flask app = Flask(__name__) from . import views 最近我了解到,没有顶级导入违反了PEP-8,所以这段代码很糟糕。但是我的views.py看起来是这样的: from . import app @app.route('/') def hello(): pass 因此需要在导入view
\uuuu init\uuuu.py
是这样的:
import a
from flask import Flask
app = Flask(__name__)
from . import views
最近我了解到,没有顶级导入违反了PEP-8,所以这段代码很糟糕。但是我的views.py
看起来是这样的:
from . import app
@app.route('/')
def hello():
pass
因此需要在导入views.py
之前实例化app
。我应该如何更改它,使其符合PEP-8,但仍然有效?您没有“违反PEP-8”
PEP 8文件-编码风格指南有一个主题为:
“”中,其中在文档中的角色被重申为样式的指南
现在,更改应用程序工作的导入语句顺序是应用程序基本逻辑的一部分-这些语句的顺序会产生差异,而不是风格问题。“风格”就这么多了
现在,担心“违反PEP 8”的人通常不是因为源代码对人类的影响,而是因为在提交/测试/构建工作流上运行的一些linter程序会在所谓的“违反PEP 8”上泄漏错误。到目前为止,这些Linter中没有一个具备PEP 8“编码风格指南”真正精神所要求的常识
因此,只要用linter程序不会抱怨的方式标记延迟导入的行。通常,这是通过在行尾添加一条内联注释来完成的,阅读
#noQA
——您也可以这样做——但确切的文本可能会因linter程序而异 您是否考虑过编写一个函数来创建视图,将应用程序
作为参数<代码>从视图导入创建视图;创建视图(应用程序)。