> -----Original Message----- > From: [EMAIL PROTECTED] > [mailto:[EMAIL PROTECTED] On Behalf Of Pete > Sent: Thursday, March 15, 2007 5:54 PM > To: [email protected] > Subject: Re: [pylucene-dev] why isn't my custom > Similarityobjectchangingthebehavior? > > On Thursday March 15 2007 6:31 pm, Ofer Nave wrote: > > > class SimilaritySansTF(object): > ... > > def idf(self, term, searcher): > > return self.super.idf(term, searcher) > > > > def idf(self, terms, searcher): > > return self.super.idf(terms, searcher) > > > > def idf(self, docFreq, numDocs): > > return self.super.idf(docFreq, numDocs) > > Python doesn't do signature-overloading. Your class is going > to end up with the last definition of idf()
I knew Python didn't have signature overloading, but didn't know what would happen when I defined the same function three times. Frankly, I was surprised that it compiled without error. :) Thanks for the tip re last definition being used. > > So, that's definitely a step forward. However, I'm not > very pleased > > with my implementation, and I also have a host of new questions: > > > > 1) Did I implement the subclass wisely? I only wanted to override > > tf(), but needed to implement many other methods in order > to conform. > > I also didn't want to have to recode the existing logic of the > > superclass, and I didn't know how to properly call the super class > > methods, so instead I instantiatied the superclass in __init__ and > > delegated to it to calculate the answers for me. This works for > > state-less classes, but would be problematic if I was subclassing a > > class with state, where my subclass would have to share > state with the superclass. > > Looks pretty much right to me - you might think about passing > in self.super as an arg to __init__ instead. Do you mean just to avoid the overhead of creating the inner PyLucene.DefaultSimilarity() multiple times if SimilaritySansTF is created several times? > FWIW, if you're new to python, you picked about the single > strangest package out there to start with. [0] Don't I know it. :) Well, whatever doesn't kill you makes you stronger (or gets you fired for taking too long). -ofer _______________________________________________ pylucene-dev mailing list [email protected] http://lists.osafoundation.org/mailman/listinfo/pylucene-dev
