我觉得这是一个更普遍的问题,但这里有一个我正在考虑的例子:我有一个python类,它在初始化过程中通过zip归档并提取一些数据。
下面的代码块是显式地在"def init“中写的,还是应该作为一个方法在"def init”中被调用?哪一种方法是最“毕达通”的?
with ZipFile(filename, "r") as archive:
for item in archive.namelist():
match = self.pattern.match(item)
if match:
uid = match.group(2)
time = match.group(3)
else:
raise BadZipFile("bad archive")发布于 2016-03-26 12:20:35
如果您想要在多个地方执行您要显示的语句,那么实际上就没有讨论。如果没有用于此任务的方法或函数,您将违反干的原则。
否则..。不管怎么说我都会写一个方法。您正在显示的任务很好地自我包含,应该使用描述性名称进行抽象。它将使您的__init__方法更易于维护和阅读。
您还应该考虑编写作为模块级函数显示的代码,接受模式作为参数,因为除了self.pattern属性之外,任务似乎与类实例的数据和方法没有很强的连接(从我们现在的情况来看)。
发布于 2016-03-26 12:16:49
__init__()完全可以调用其他函数,包括同一个类的方法。
https://stackoverflow.com/questions/36234988
复制相似问题