我正在做一个Flask web应用,和往常一样,我的__init__.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,但仍然可以工作?
发布于 2017-03-07 21:56:31
你并没有“违反PEP8”。
PEP8文档-编码风格指南有一个标题为"A Foolish Consistency is the Hobgoblin of Little Minds“的会议,其中文档的作用被重申为风格指南。
现在,更改import语句的顺序以使应用程序工作是应用程序的基本逻辑的一部分-这些语句的顺序会有所不同,这不是样式问题。这就是所谓的“风格”。
现在,人们担心“违反PEP8”通常不是因为源代码看起来像人类,而是因为在提交/测试/构建工作流上运行的一些linter程序在所谓的“PEP8违规”上泄漏错误。这些linters都没有(到目前为止)PEP8的“编码风格指南”的真正精神所要求的公共意义。
因此,只需用linter程序不会出错的方式标记后期导入的行。这通常是通过在行的末尾添加一个内联注释来实现的--你可以这样做--但是确切的# noQA可能会因你的linter程序而异。
https://stackoverflow.com/questions/42649800
复制相似问题