charr_prob = float(self.char_freq(kgram, char) * 1.0 / (self.kgram_freq(kgram) * 1.0))
我该如何解决这个问题?
答案 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