【发布时间】:2015-05-20 08:08:06
【问题描述】:
根据我对 Pythonic 编码风格(尤其是 PEP20)的理解,代码必须简单易读。考虑到这一点,方法级联是否被视为 Pythonic?
例如,假设我们有一个Cascade 类:
class Cascade(object):
def __init__(self, pythonic):
self.question = 'Is this Pythonic?'
self.answer = pythonic
def copy(self):
import copy
return copy.deepcopy(self)
def is_pythonic(self):
return self.answer
那么哪个更好:
>>> cas = Cascade(False)
>>> cas.copy().is_pythonic()
False
否则:
>>> cas1 = Cascade(False)
>>> cas2 = cas1.copy()
>>> cas2.is_pythonic()
False
在我看来,第一个选项更具可读性,因为我的眼睛从左向右扫视 - 几乎类似于阅读一本书,而第二个选项每行保留一个简单的语句(诚然,这也是高度可读的)。
编辑
在Haleemur Ali、Lutz Horn 和claust 提供有用的 cmets 之后,我想将问题改写为更广泛的“我什么时候应该在 Python 中使用方法级联?” p>
【问题讨论】:
标签: python python-2.7 python-3.x methods