2013-04-17 3 views
2

Я немного новый форсирования код питона быть 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) 
Смежные вопросы