В python Мне нужно создать список свойств моего класса, который я могу сериализовать, громоздко отобразить их в верхней части класса. Вместо этого я хотел бы использовать декоратора таким же образом @property используется, то есть что-то вроде этого:python decorator добавляет функцию к списку на объекте
class MyClass(object):
# I dont like having to do this for example
#__list_of_props_to_serialise__ = ['my_prop',]
@property
@serialise
def my_prop(self):
return "this is my property"
def serialise(self):
return {f: self.getattr(f) for f in self.__list_of_props_to_serialise__}
где __list_of_props_to_serialise__
обновляется на объекте с помощью декоратора, когда класс построен таким образом, я не нужно комментируемого в начале.
Проблема заключается в том, когда я прихожу писать декоратор. У меня нет доступа к классу или объекту, пока я фактически не вызову функцию my_prop
, поэтому я не могу ее добавить. Я «делаю это неправильно», есть ли лучший способ сделать это, или это можно сделать каким-то образом?
Если это может быть сделано, некоторые могут показать функцию декоратора, которую я могу использовать, иначе, если есть лучший способ, пожалуйста, приведи пример.
Спасибо.
awsome работает как шарм !! ... cheers – othane