gpt4 book ai didi

python - 这是一个可接受的 pythonic 习语吗?

转载 作者:太空狗 更新时间:2023-10-30 01:41:16 25 4
gpt4 key购买 nike

我有一个类可以帮助导入特殊类型的文件,还有一个“工厂”类可以让我批量执行这些操作。工厂类使用生成器,因此客户端可以遍历导入器。我的问题是,我是否正确使用了迭代器?这是可以接受的成语吗?我刚开始使用 Python。

class FileParser:
""" uses an open filehandle to do stuff """

class BatchImporter:
def __init__(self, files):
self.files=files

def parsers(self):
for file in self.files:
try:
fh = open(file, "rb")
parser = FileParser(fh)
yield parser
finally:
fh.close()

def verifyfiles(
def cleanup(

---

importer = BatchImporter(filelist)
for p in BatchImporter.parsers():
p.method1()
...

最佳答案

您可以使一件事变得更简单:使用 with block 代替 try...finally:

with open(file, "rb") as fh:
yield FileParser(fh)

这将在 with block 离开时自动为您关闭文件。

关于python - 这是一个可接受的 pythonic 习语吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3283479/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com