My heartly thanks to Steven D'Aprano, Alan Gauld and Peter Otten for addressing this.
I would go with Steven D'Aprano point and will take Alan Gauld inputs. Thanks once again. On Mon, Dec 21, 2015 at 9:56 PM, Alan Gauld <alan.ga...@btinternet.com> wrote: > On 21/12/15 12:22, Sunil Tech wrote: > > > class OptIf(object): > > """docstring for OptIf""" > > This does not look like a useful class, it should probably > just be a function. Are you really going to have multiple > instances? > > > def opt_me(self, ext): > > if ext == 'CM': > > rec = self.call_cm(cm, ad) > > if ext == 'MM': > > rec = self.call_mm(mm, ax) > > if ext == 'DM': > > rec = self.call_dm(dm, md) > > return rec > > These should probably be an if/elif chain rather > than multiple if options (no risk of multiple > operations). > > Without knowing more about what this is doing and what the > various parameters represent it's hard to be sure how best > to "optimise" it. Bear in mind too that optimising may mean > improving readability and the if statements may be more > readable and maintainable than any dictionary lookup > would be. > > > def call_cm(cm, ad): > > def call_mm(mm, ax): > > def call_dm(dm, md): > > As methods they should have a self parameter. > > But these look suspiciously like the same method > with different names. The first parameter looks > like it might be a size value. (But I've no idea > what the second is supposed to be.) > > Could this be a single function which incorporates > a scaling factor? > > > med_map = {'CM': call_cm, 'MM': call_mm, 'DM': call_dm} > > but I am not able to pass the arguments. > > They all take two arguments so you can pass those in > if the types are consistent. > > result = med_map[unit](arg1,arg2) > > Your problems start if the parameters are all > different types. If that's the case you are probably > better sticking with the if chain. Or maybe creating > three real classes that can be instantiated as needed > and use polymorphism to avoid the if statements. > > But without any more detail on what's really going on > I am just making wild guesses. > > -- > Alan G > Author of the Learn to Program web site > http://www.alan-g.me.uk/ > http://www.amazon.com/author/alan_gauld > Follow my photo-blog on Flickr at: > http://www.flickr.com/photos/alangauldphotos > > > _______________________________________________ > Tutor maillist - Tutor@python.org > To unsubscribe or change subscription options: > https://mail.python.org/mailman/listinfo/tutor > _______________________________________________ Tutor maillist - Tutor@python.org To unsubscribe or change subscription options: https://mail.python.org/mailman/listinfo/tutor