pep8这行代码的首选方法

时间:2013-04-17 08:43:25

标签: python pep8

我强迫python代码成为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
)

3 个答案:

答案 0 :(得分:3)

我会发布如何做到这一点,我认为这看起来更干净但正如我之前所说,一旦你遵守PEP-8的基础知识,剩下的就是个人风格:

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

恕我直言,你使用太多的额外线条,看起来你似乎已经过分了。

答案 1 :(得分: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,
)

答案 2 :(得分:1)

我认为你这样做的方式很好,但我会尽量使它与现有代码保持一致。

在这种特殊情况下,我可能会将第一个参数分配给临时变量。

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