Единственное решение (без полного переосмысления всего вашего проекта - какой вариант FWIW может быть рассмотрен, см. Мои комментарии по вашему вопросу) - это иметь список имен атрибутов (в том порядке, в котором вы хотите, чтобы они были в окончательном списке).) и используйте getattr
class MonstruousGodClass(object):
_fields_list = ["name", "title", "value", ] #etc...
def as_list(self):
return [getattr(self, fieldname) for fieldname in self._fields_list]
Теперь, поскольку, как я упоминал в комментарии, list
НЕ является правильным типом данных (по крайней мере, из семантического POV), вы можете использоватьdict
вместо этого - что делает код намного проще:
import copy
def as_dict(self):
# we return a deepcopy to avoid unexpected side-effects
return copy.deepcopy(self.__dict__)