Потеря значений свойств объектаPython

Программы на Python
Anonymous
Потеря значений свойств объекта

Сообщение Anonymous »

У меня есть следующий класс заметок с двумя свойствами:

Код: Выделить всё

class Note(dict):
def __init__(self, name: str, vex: str):
dict.__init__(self, name=name, vex=vex)
self.name = name
self.vex = vex
(Дикт позволяет json сериализовать его с помощью json.dumps.)
У меня есть список примечаний, который сначала заполняет только name, а затем функция заполняет свойство vex.
Когда функция возвращает значение, все свойства vex пусты.
Непосредственно перед возвратом I добавили следующий код отладки:

Код: Выделить всё

        for i in range(len(notes)):
print(notes[i].vex)
print(notes)
Это выводит:

Код: Выделить всё

C/5
D/5
E/5
F/5
G/5
A/5
B/5
C/6
[{'name': 'C', 'vex': ''}, {'name': 'D', 'vex': ''}, {'name': 'E', 'vex': ''}, {'name': 'F', 'vex': ''}, {'name': 'G', 'vex': ''}, {'name': 'A', 'vex': ''}, {'name': 'B', 'vex': ''}, {'name': 'C', 'vex': ''}]
Итак, как вы можете видеть, значения vex присутствуют при индивидуальном доступе в цикле, но не присутствуют при печати всего списка.
Затем функция сериализуется в json и передается в другую систему — значения vex также отсутствуют в json.


Подробнее здесь: https://stackoverflow.com/questions/788 ... rty-values

Вернуться в «Python»