John wrote: > I've now written my first set of Classes to do some fairly specific > processing for work I do. I have a few questions. > > First, in looking through what I've done, I basically just incorporated > all my previous scripts into classes... they are still highly specific > to my application, though I did try to make them somewhat 'reusable' or > general. It is difficult though, as portions required hardcoding. For > that I used the __init__ method to define a bunch of 'hardcoded' > variables, that could then be set if they were passed on initiation.
You didn't show your original script or enough context for me to judge if this was a useful change. A program that uses classes rather than simple scripts is not necessarily 'better' than one that doesn't. Classes are a tool that is helpful in some circumstances but not all. In other words don't add classes to your programs just because it seems like a good idea. Some good reasons for using classes are here: http://personalpages.tds.net/~kent37/stories/00014.html > I guess, I'm writing because I'm wondering now what people think about > writing classes versus just using scripts for things that are so > specific. It's hard for me to give an example, or show what I'm doing, > but I would appreciate thoughts on that matter. It's ok for classes to be specific. > One thing I am struggling with is how to assign *args and **kwargs if > they are passed, and how to ignore them if they are not... right now I > do this: > > def myfunc(self, *args,**kwargs): > a=self.a > b=self.b > kwa=self.kwa > kwb=self.kwb > try: > a=args[0]; b=args[1] > kwa=kwargs['a'] > kwb=kwargs['b'] > except: pass > > > Where self.X is defined in the __init__ of the class. Is that correct? No, this will not assign from kwargs if args is not given. How about this: def myfunc(self, *args,**kwargs): try: a=args[0]; b=args[1] except TypeError: a=self.a b=self.b try: kwa=kwargs['a'] kwb=kwargs['b'] except TypeError: kwa=self.kwa kwb=self.kwb Kent _______________________________________________ Tutor maillist - Tutor@python.org http://mail.python.org/mailman/listinfo/tutor