On Mon, 6 Sep 2010 09:03:30 pm Rasjid Wilcox wrote: > I've been using > > for attr_name in name_list: > setattr(a, attr_name, getattr(b, attr_name)) > > to copy the attributes from one type of class to another, and it is > not quite as readable as I would like.
The one-liner in the for loop is very concise. The problem is that concise is often the opposite of readable. So make it less concise: for name in name_list: obj = getattr(b, name) setattr(a, name, obj) Does that help? Another alternative, depending on the class, *might* be this: a.__dict__.update(b.__dict__) although that's a hack, and like all hacks, may not do what you expect for all classes. > Actually, I've just thought > that the best option would be to make both classes dictionary like > objects with automatic translation between a['foo'] and a.foo. How does that help you copy from one class to another? As I see it, it just adds more noise to the class. -- Steven D'Aprano _______________________________________________ Tutor maillist - Tutor@python.org To unsubscribe or change subscription options: http://mail.python.org/mailman/listinfo/tutor