2013-04-17 31 views
2

我是一個有點新的強制Python代碼是PEP8,什麼是PEP8這行代碼的首選方式:首選方式PEP8這行代碼

emissionprob = preprocessing.normalize(self.random_state.rand(self.n_components, self.n_symbols), norm='l1', axis=1, copy=False) 

個人我有點奇怪並且喜歡這種方式,這是否被認爲是PEP8?

emissionprob = preprocessing.normalize(
    self.random_state.rand(
     self.n_components, 
     self.n_symbols 
    ), 
    norm='l1', 
    axis=1, 
    copy=False 
) 
+1

是這很好......這僅僅是一個個人風格問題 – jamylak

+1

PEP8是一種風格_guide,_不是一種風格的需求。如果你遵循指導原則,你的代碼可能會看起來更好,但請記住,PEP8的第一個指導原則之一是,如果它損害了可讀性,則忽略它。 – paxdiablo

回答

2

我有相同的優先級,你做和PEP8驗證不認爲這是錯誤的:https://pypi.python.org/pypi/pep8

通常我認爲這是建議做這樣然而,我發現它的可讀性:

emissionprob = preprocessing.normalize(self.random_state.rand(self.n_components, 
                   self.n_symbols), 
             norm='l1', 
             axis=1, 
             copy=False) 

我個人做這樣的(注意逗號無處不在尾部):

emissionprob = preprocessing.normalize(
    self.random_state.rand(
     self.n_components, 
     self.n_symbols, 
    ), 
    norm='l1', 
    axis=1, 
    copy=False, 
) 
+0

甜蜜,但大部分的代碼看起來像你最後的'不太可讀',我應該走自己的路徑,並展開全部或保持一致? 此外,該行是97,如何解決? – SlimJim

+0

與隨後的逗號不錯,我知道這是可能的,但除了列表被認爲是醜陋的 – SlimJim

+1

我不想成爲那個傢伙,但是,不是第一個80char? – SlimJim

3

我只是張貼我會怎麼做,我覺得這看起來比較清爽,但正如我之前所說,一旦你服從PEP-8的基礎知識,其餘的只是個人風格問題:

emissionprob = preprocessing.normalize(
    self.random_state.rand(self.n_components, self.n_symbols), 
    norm='l1', 
    axis=1, 
    copy=False) 

恕我直言,你使用的方式太多額外的線路,它只是好像你會過度與它。

+1

我認爲這看起來更好,因爲它可以在不破壞線條尺寸準則的情況下爲您提供單線每線。 – paxdiablo

1

我認爲你這樣做的方式很好,但我會盡量保持它與現有代碼一致。

在這種特殊情況下,我可能會將第一個參數分配給一個臨時變量。

rand = self.random_state.rand(self.n_components, self.n_symbols) 
emissionprob = preprocessing.normalize(rand, norm='l1', axis=1, copy=False)