描述性被认为是更具可读性的代码,还是您应该始终优先考虑 'less code is more' 而不是 Python?
Is being descriptive considered as more readable code, or should you always prioritize 'less code is more' in Python?
比如我们有两个方法想要得到输入的一个句子字符串中单词长度的中位数(这只是一个简单的例子):
def get_median(sentence):
words = tokenize(sentence)
lengths_of_words = [len(word) for word in words]
median = statistics.median(lengths_of_words)
return median
此方法有 4 行长,但描述了每个组件。
对应的是:
def get_median(sentence):
return statistics.median([len(x) for x in tokenize(sentence)])
甚至第二个看起来更像 pythonic 和流畅,第一个更具描述性和划分性。我似乎无法就此达成明确的共识,但一般应该首选什么,什么被认为更具可读性?为什么?
我认为第二种方式更好,因为它更简洁。我认为,如果您担心有人可能不理解代码片段的作用,您可以在上面写一条评论来解释它。当您可以用一种阅读时更吸引眼球的方式做同样的事情时,为什么还要让代码变得混乱?
比如我们有两个方法想要得到输入的一个句子字符串中单词长度的中位数(这只是一个简单的例子):
def get_median(sentence):
words = tokenize(sentence)
lengths_of_words = [len(word) for word in words]
median = statistics.median(lengths_of_words)
return median
此方法有 4 行长,但描述了每个组件。
对应的是:
def get_median(sentence):
return statistics.median([len(x) for x in tokenize(sentence)])
甚至第二个看起来更像 pythonic 和流畅,第一个更具描述性和划分性。我似乎无法就此达成明确的共识,但一般应该首选什么,什么被认为更具可读性?为什么?
我认为第二种方式更好,因为它更简洁。我认为,如果您担心有人可能不理解代码片段的作用,您可以在上面写一条评论来解释它。当您可以用一种阅读时更吸引眼球的方式做同样的事情时,为什么还要让代码变得混乱?