Используйте свойство __dict__
: self.__dict__.update(other.__dict__)
В некоторых случаях это не сработает, особенно для любых переменных, определенных в классе, а не в методе (или в другом «исполняемом коде»).
Если вы хотите скопировать почти все:
for k in filter(lambda k: not k.startswith('_'), dir(other)): # avoid copying private items
setattr(self, k, getattr(other, k))