2017-03-07 47 views
1

我想提出一个瓶web应用程序,和往常一样,我__init__.py是这样的:移动视图到一个单独的文件,而不违反PEP-8

import a 
from flask import Flask 
app = Flask(__name__) 
from . import views 

最近我了解到,并非具有顶级别导入违反了PEP-8,所以这段代码很糟糕。但我的views.py看起来像这样:

from . import app 
@app.route('/') 
def hello(): 
    pass 

所以它需要appviews.py导入之前被实例化。我应该如何改变它,使其符合PEP-8,但仍然有效?

+0

您是否考虑过编写一个函数来创建视图,并将'app'作为参数? '从视图导入create_views; create_views(APP)'。 – jonrsharpe

回答

1

你不是“违反PEP 8”。

的PEP 8号文件 - 编码风格的指导方针有一个标题为会话: “A Foolish Consistency is the Hobgoblin of Little Minds”,凡在该文件的作用是重申作为指导风格

现在,更改应用程序工作的导入语句顺序是应用程序的基本逻辑的一部分 - 这些语句的顺序有所不同,它不是风格问题。他们的“风格”非常多。

现在,人们担心“违反PEP 8”通常不是因为源代码如何查找人类,而是因为在提交/测试/构建工作流程上运行了一些linter程序,因此泄漏了错误称为“PEP 8违规”。这些绒毛中没有(至今)PEP 8的“编码风格指南”的真正精神所要求的普通意义。

因此,只需用linter程序不会记录延迟输入的行抱怨。通常这是通过在阅读# noQA的行尾添加内嵌评论来完成的 - 而且你可以这样做 - 但确切的文本内容可能因您的linter程序而异。

相关问题