Thomas Ploch schrieb: > Hello fellows, > > I just wanted to know, if there is any best practice concerning > following code: > > import re, shelve > > class TextMatcher: > def __init__(self, patterns, email=False, dbName='textmatch.db'): > self._initPatterns(patterns) > self.email = email > self.dbName = dbName > if self.email: > self.emailList = [] > self.emailList.append( > re.compile(r'[EMAIL PROTECTED]')) > > def match(self, src, url): > self.matchDict = {} > self.matchDict[url] = {} > # The next 2 functions just add stuff to self.matchDict > if self.email: > self._addEmails(src, url) > self._addPatterns(src, url) > # Is it good practice to open, write and close the db straight > # away? Or is it better to leave it open until the whole program > # has finished, and close it then? > self.openDB(self.dbName) > self.db[url] = self.matchDict[url] > self.db.close() > # I want to del the matchDict each time so it can't grow big. > # Is this good, or should it be left open, too? > del self.matchDict > > def openDB(self, dbName=None, modeflag='c'): > if dbName == None: > self.db = shelve.open('textmatch.db', flag=modeflag) > else: > self.db = shelve.open(dbName, flag=modeflag) > >
s/del self.matchDict/self.matchDict.clear() and ignore the second question. When I read the sent message, it came to my mind. :-) Thomas -- http://mail.python.org/mailman/listinfo/python-list