On 05/11/13 23:55, Johan Martinez wrote:
I need help in modifying my program. Right now it looks as follows: class Filedict(): def __init__(self, fname): self.fname =fname def parse(self): with open(self.fname, 'r') as f: .... # some file search and parsing logic return parsed_file
change this to self.parsed = parsed_file
def process(self, parsed_object):
remove the parsed_object parameter
for k in parsed_obj.keys():
replace with for k in self.parsed.keys(): or more simply for k in self.parsed:
return processed_file
And maybe make this self.processed = processed_file
f = Filedict('sales.txt') parsed_f = f.parse() processed_f = f.process(parsed_f) So I need to pass parsed_f again to the process method. I would like to use process method directly on initialized object. For example: f = Filedict('sales.txt') f.process()
my suggestions would lead to f = Filedict('sales.txt') f.parse() f.process()
Should I store parsed_file as an object attribute as follows?
yes, but you can do it inside parse() which ensures the attribute is kept updated ifg you call parse a second time and, for any reason,
get a different result.
class Filedict(): def __init__(self, fname): self.fname =fname self.parsed_file = self.parse()
That then becomes class Filedict(): def __init__(self, fname): self.fname =fname self.parse() And you can remove the parse() line from my 3 liner above... -- Alan G Author of the Learn to Program web site http://www.alan-g.me.uk/ http://www.flickr.com/photos/alangauldphotos _______________________________________________ Tutor maillist - Tutor@python.org To unsubscribe or change subscription options: https://mail.python.org/mailman/listinfo/tutor