У меня есть разные python классы, и я хочу преобразовать экземпляры этих классов в строки ascii. Предположим, у меня есть следующие объекты:
class A:
name = "A"
field = 2
x = "a"
class B:
name = "b"
item = "c"
a = A()
b = B()
Мне нужна функция типа serialize()
, которая преобразует следующие объекты:
serialize(a) # results "A2a"
serialize(b) # results "bc"
Я не хочу писать функцию сериализации для каждого класса, я хочу иметь функцию, способную сериализовать все классы. Один из способов - использовать функцию dir()
, чтобы получить список атрибутов объекта, а затем создать из них строку, но функция dir()
не возвращает атрибуты в том же порядке, в котором они определены. Например, вызов dir(a)
вернет ['__doc__', '__module__', 'filed', 'name', 'x']
, и я не могу узнать, какой атрибут определен первым в классе.
Спасибо.