On Tue, 25 Nov 2008 07:27:41 +0000, John O'Hagan 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?
The question is if `args.a`, `args.b`, …, are semantically part of the state of the objects or not. Hard to tell in general. I know it's a made up example but in the second class I'd ask myself if those methods are really methods, because they don't use `self` so they could be as well be functions or at least `staticmethod`\s. Ciao, Marc 'BlackJack' Rintsch -- http://mail.python.org/mailman/listinfo/python-list