2017-03-07 44 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程序而異。

相關問題