为了账号安全,请及时绑定邮箱和手机立即绑定

在 for 循环中销毁实例时 Python 性能提升

在 for 循环中销毁实例时 Python 性能提升

Go
噜噜哒 2021-06-29 13:04:39
我正在使用 Python 脚本读取一些 ASCII 文件,操作它们的值并获得输出。计算是在类实例化中完成的,类似于伪形式def __init__(input)  self.input = input  self.output = function of input 伪代码,在问号之间有争议的部分,是open fileread linesfor each lines in file:     split line    construct class instance with input from split-line values    store instance.output in a help variable (list)    ?? delete class instance ??further processing of the help variableetc删除类实例是节省时间和内存的障碍还是机会?问题的规模很大(不到 100 万行)。我很清楚我宁愿从二进制文件中读入,但目前这是行不通的。另外,我选择类结构是因为它的优雅,也许随着脚本的发展,我可以从封装中获得更多的好处。但是,如果建议这样做,我可以在现阶段放弃它。
查看完整描述

2 回答

?
慕后森

TA贡献1802条经验 获得超5个赞

当垃圾收集过程中没有更多引用时,Python 会自动为您销毁实例,因此您不应该自己执行此操作,除非您确实希望在仍有引用时删除该实例。

在您的情况下,每次迭代都会创建新实例,并且由于您仅将从实例派生的输出而不是实例本身存储到列表中,因此您不会在下一次迭代中保留对旧实例的任何引用,因此垃圾收集过程将以有效的方式为您销毁实例,因此您不必担心自己进行。自己做实际上会更慢,因为您将使用 Python 代码进行删除,而不是使用纯粹用 C 实现的垃圾收集。


查看完整回答
反对 回复 2021-07-21
  • 2 回答
  • 0 关注
  • 264 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信