Слишком длинная строка в стиле Pycode E501 (118 > 79 символов)
charr_prob = float(self.char_freq(kgram, char) * 1.0 / (self.kgram_freq(kgram) * 1.0))
Как я могу это исправить?
1 ответ
Длинные строки не обязательно плохи, если они не влияют на читабельность. Это вопрос вкуса. Вы можете отключить предупреждение, добавив # noqa
или вы можете разбить строку на несколько:
Например, используя круглые скобки:
charr_prob = (float(self.char_freq(kgram, char) * 1.0
/ (self.kgram_freq(kgram) * 1.0)))
Как float
уже использует скобки:
charr_prob = float(self.char_freq(kgram, char) * 1.0
/ (self.kgram_freq(kgram) * 1.0))
Вы также можете использовать \
в конце первой строки включить вторую строку в текущем выражении. Здесь это будет избыточно с круглыми скобками, определенными для float
, но при условии, что вы удалите вызов float
, это будет:
charr_prob = (self.char_freq(kgram, char) * 1.0) \
/ (self.kgram_freq(kgram) * 1.0)
Вы также можете упростить выражение, когда это возможно. Предполагая, что вы используете Python3 (и, таким образом, /
не является целочисленным делением):
charr_prob = self.char_freq(kgram, char) / self.kgram_freq(kgram)
Или для Python2 (79 символов!):
charr_prob = float(self.char_freq(kgram, char)) / float(self.kgram_freq(kgram))
Или, как предлагает @Blender, даже:
charr_prob = float(self.char_freq(kgram, char)) / self.kgram_freq(kgram)
... второй float
быть ненужным в качестве первого операнда /
это уже поплавок. Другая возможность - импортировать поведение /
из Python3 в Python2:
from __future__ import division