2

我对强制 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
)
4

3 回答 3

3

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

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

恕我直言,您使用了太多额外的行,看起来您似乎太过分了。

于 2013-04-17T08:57:22.057 回答
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,
)
于 2013-04-17T08:51:39.307 回答
1

我认为您这样做的方式很好,但我会尝试使其与现有代码保持一致。

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

rand = self.random_state.rand(self.n_components, self.n_symbols)
emissionprob = preprocessing.normalize(rand, norm='l1', axis=1, copy=False)
于 2013-04-17T09:01:35.873 回答