Awful code of the week
Chris Angelico
rosuav at gmail.com
Tue Aug 9 01:37:47 EDT 2016
On Tue, Aug 9, 2016 at 3:20 PM, Steven D'Aprano
<steve+comp.lang.python at pearwood.info> wrote:
>> def process(self, stuff):
>> files = self.files
>> files = [] # to save memory
>> files = self.files
>> for file in files:
>> file.process(stuff)
>> return 1
>
> def process(self, stuff):
> try:
> files = self.files
> del files # to save memory
> files = [] # just to be sure
> files = self.files
> for file in files:
> file.process(stuff)
> return 1
> finally:
> del files
> del file
> del stuff
> del self # this has to come last
>
>
> You can't be too careful with memory management.
Right. Of course, it gets very onerous, so we tend to use a context
manager instead.
def process(self, stuff):
with deallocate() as cleanup:
cleanup(self)
cleanup(stuff)
files = self.files
cleanup(files)
del files
files = []
cleanup(files)
files = self.files
cleanup(files)
for file in files:
cleanup(file)
file.process(stuff)
return 1
There, isn't that so much better?
ChrisA
More information about the Python-list
mailing list