Я хотел бы избежать травления определенных полей в экземпляре класса. В настоящее время, прежде чем травить, я просто установил эти поля в None, но мне интересно, есть ли более элегантное решение?Исключить поле объекта из травления в python
ответ
Существует пример here, который решает проблему с __getstate__
и __setstate__
.
Одним из способов обработки атрибутов экземпляра, которые не пригодны для консервирования объектов являются использование специальных методов для изменения состояния экземпляра класса в: GetState() и SetState(). Вот пример
class Foo(object):
def __init__(self, value, filename):
self.value = value
self.logfile = file(filename, 'w')
def __getstate__(self):
"""Return state values to be pickled."""
f = self.logfile
return (self.value, f.name, f.tell())
def __setstate__(self, state):
"""Restore state from the unpickled state values."""
self.value, name, position = state
f = file(name, 'w')
f.seek(position)
self.logfile = f
Когда экземпляр Foo маринуется, Python будет солить только значения возвращаются к нему, когда он вызывает метод экземпляра GetState(). Аналогичным образом, при распитии Python будет поставлять неиспользуемые значения в качестве аргумента для метода setstate экземпляра(). Внутри метода setstate() мы можем воссоздать файловый объект на основе информации о названии и позиции, которую мы мариновали, и назначить объект файла атрибуту log-файла экземпляра.
Ссылка: http://www.ibm.com/developerworks/library/l-pypers.html
- 1. Данные травления в python
- 2. python-igraph эффективность травления
- 3. Исключить поле объекта из обновления в ZF2 Doctrine2
- 4. Проблема травления с python patos
- 5. MemoryError во время травления данных в python
- 6. Ошибка травления в Python: io.UsupportedOperation: прочитайте
- 7. Django Rest Framework - Исключить поле из связанного объекта
- 8. Исключить поле из tastypie api
- 9. Исключить элементы из объекта jQuery
- 10. исключить поле из приведенных документов в ElasticSearch
- 11. Как исключить поле из кэша в drupal?
- 12. python multiprocessing shared Counter, ошибка травления
- 13. Как получить зависимости функции python для травления?
- 14. Проблемы с данными травления
- 15. Зачем мне неожиданное поведение в Python isinstance после травления?
- 16. Python псевдо-неизменяемое поле объекта
- 17. Исключить поле в запросе Elasticsearch
- 18. Джанго Исключить ForeignKey поле из ModelChoiceField
- 19. Исключить поле из django rest framework serializer
- 20. исключить поле _id из ng-фильтра angularjs
- 21. Исключить поле из значений() или values_list()
- 22. Проблемной функция травления
- 23. Исключить поле из LF, которое делает.
- 24. Исключить поле из таблицы SELECT * FROM $
- 25. мангуст исключить поле в массиве
- 26. Исключить значение объекта IB из файла строк
- 27. исключить повторяющиеся записи из массива Oracle Объекта
- 28. Исключить конкретный тип объекта из глобальной среды
- 29. Исключить содержимое тега из объекта Xpath
- 30. Исключить модульные тесты из покрытия в python
Лучшие Пальцы Первые: P – anijhaw
Фиксированная ссылка: http://docs.python.org/2/library/pickle.html#example – WGH