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

Reply via email to