我有这样的事情:
class TransMach:
def __init__(self, machfile, snpfile):
self.machfile = machfile
self.snpfile = snpfile
def __translines(self):
fobj = open(self.machfile)
lines = (l.strip().split()[2] for l in fobj)
tlines = zip(*lines)
return tlines
生成器用于避免将整个文件读入内存,但有时读取整个文件正是我们所希望的(即列表理解)。如何在没有太多额外代码的情况下改变这种行为?目标是能够在这两种模式之间进行选择。我听说python有一些叫做descriptor的特性,可以用来修改函数而不接触函数体,在这种情况下是否合适?如果是,这里应该如何使用?