On 25 Nov, 08:27, John O'Hagan <[EMAIL PROTECTED]> wrote: > Is it better to do this: > > class Class_a(): > def __init__(self, args): > self.a = args.a > self.b = args.b > self.c = args.c > self.d = args.d > def method_ab(self): > return self.a + self.b > def method_cd(self): > return self.c + self.d > > or this: > > class Class_b(): > def method_ab(self, args): > a = args.a > b = args.b > return a + b > def method_cd(self, args) > c = args.c > d = args.d > return c + d > > ? > > Assuming we don't need access to the args from outside the class, > is there anything to be gained (or lost) by not initialising attributes that > won't be used unless particular methods are called? > > Thanks, > > John O'Hagan
If 'args' is an object of some class which has the attribute a,b,c,d, why don't you just add method_ab and method_cd to the same class, either directly or by sibclassing it? If for some reason you can't do the above, just make two functions: def function_ab(args): return args.a + args.b def function_cd(args): return args.c + args.d One good thing of Python is that you don't have to make classes if you don't need to ... Ciao ------ FB -- http://mail.python.org/mailman/listinfo/python-list