Pycode风格E501线太长(118> 79个字符)

时间:2018-04-10 08:45:36

标签: python pycodestyle

charr_prob = float(self.char_freq(kgram, char) * 1.0 / (self.kgram_freq(kgram) * 1.0))

我该如何解决这个问题?

1 个答案:

答案 0 :(得分:0)

如果不影响可读性,长线不一定是坏事。这是一个品味问题。您可以通过添加# noqa来禁用警告,也可以将该行拆分为多个:

E.g。使用括号:

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