我有这样的事情:
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有一些称为描述符的功能,可以用来修改函数而不触及函数体,它适合这种情况吗?如果是的话,这里应该如何使用呢?
只需致电list()
在生成器上,您需要将结果具体化:
gen = TransMach(mfile, sfile)
lines = list(gen)
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)