kakada wrote: > # I have change my code style like this: > > def gotoNF(self): > self.state = "NF" > self.navigationNext(self.state) > def gotoNT(self): > self.state = "NT" > self.navigationNext(self.state) > def gotoNU(self): > self.state = "NU" > self.navigationNext(self.state) > def gotoNA(self): > self.state = "NA" > self.navigationNext(self.state) > > def gotoPA(self): > self.state = "PA" > self.navigationPrevious(self.state) > def gotoPT(self): > self.state = "PT" > self.navigationPrevious(self.state) > def gotoPU(self): > self.state = "PU" > self.navigationPrevious(self.state) > def gotoPF(self): > self.state = "PF" > self.navigationPrevious(self.state) > All of the above could store a method as well as or instead of a state. Then you can get rid of the big conditional below.
You don't show the code to create self.store.units so I don't know what kind of object is there. I'll assume they are instances of class Unit. Then you could write for example def gotoPF(self): self.state = "PF" # You may not need this self.test = Unit.isfuzzy # This stores a reference to the correct method of Unit self.navigationPrevious(self.state) If you change all the gotoXX() methods this way, then navigated becomes just def navigated(self): if self.test(self.store.units[int(self.id)]: return True Kent > def navigated(self): > if (self.state == 'NF') and > (self.store.units[int(self.id)].isfuzzy()): > return True > if (self.state == 'PF') and > (self.store.units[int(self.id)].isfuzzy()): > return True > if (self.state == 'NT') and > (self.store.units[int(self.id)].istranslated()): > return True > if (self.state == 'PT') and > (self.store.units[int(self.id)].istranslated()): > return True > if (self.state == 'NU') and > (self.store.units[int(self.id)].isuntranslated()): > return True > if (self.state == 'PU') and > (self.store.units[int(self.id)].isuntranslated()): > return True > if (self.state == 'NA') and > (self.store.units[int(self.id)].isapproved()): > return True > if (self.state == 'PA') and > (self.store.units[int(self.id)].isapproved()): > return True > _______________________________________________ Tutor maillist - Tutor@python.org http://mail.python.org/mailman/listinfo/tutor