20251003-1
This commit is contained in:
77
help/class_desc/extensions/type_extension.md
Normal file
77
help/class_desc/extensions/type_extension.md
Normal file
@@ -0,0 +1,77 @@
|
||||
# Класс `TypeExtension`
|
||||
|
||||
Класс `TypeExtension` предназначен для работы с объектами Python и их сериализацией / десериализацией. Он поддерживает
|
||||
удобное преобразование объектов в словари и восстановление объектов из словарей, включая вложенные структуры и специфику
|
||||
обработки дат.
|
||||
|
||||
## Основная информация
|
||||
|
||||
- **Имя файла**: anb_python_components\extensions\type_extension.py
|
||||
- **Автор**: Александр Бабаев
|
||||
- **Версия**: 1.0.0
|
||||
- **Дата начала поддержки**: с версии 1.0
|
||||
|
||||
## Атрибуты и методы класса
|
||||
|
||||
### Метод `to_dict`
|
||||
|
||||
Преобразует экземпляр произвольного объекта в словарь, поддерживая рекурсию для вложенных структур и специальное
|
||||
преобразование экземпляров классов `datetime` в целые числа (timestamp).
|
||||
|
||||
**Параметры**:
|
||||
|
||||
- `instance`: Объект, подлежащий преобразованию.
|
||||
|
||||
**Пример использования**:
|
||||
|
||||
```python
|
||||
import datetime
|
||||
|
||||
from anb_python_components.extensions.type_extension import TypeExtension
|
||||
|
||||
|
||||
class SomeClass:
|
||||
def __init__(self, field1, field2):
|
||||
self.field1 = field1
|
||||
self.field2 = field2
|
||||
|
||||
|
||||
obj = SomeClass(field1="value1", field2=datetime.datetime.now())
|
||||
data = TypeExtension.to_dict(obj)
|
||||
print(data)
|
||||
```
|
||||
|
||||
### Метод `from_dict`
|
||||
|
||||
Восстанавливает объект из словарного представления, также поддерживая вложенные объекты и специальную десериализацию
|
||||
экземпляров класса `datetime`.
|
||||
|
||||
**Параметры**:
|
||||
|
||||
- `data`: Словарь, содержащий поля восстанавливаемого объекта.
|
||||
- `cls`: Класс, экземпляр которого необходимо восстановить.
|
||||
|
||||
**Пример использования**:
|
||||
|
||||
```python
|
||||
from anb_python_components.extensions.type_extension import TypeExtension
|
||||
|
||||
|
||||
class SomeClass:
|
||||
def __init__(self, field1, field2):
|
||||
self.field1 = field1
|
||||
self.field2 = field2
|
||||
|
||||
|
||||
data = {'field1': 'Иван', 'field2': 20}
|
||||
|
||||
restored_obj = TypeExtension.from_dict(data, SomeClass)
|
||||
print(restored_obj.field1) # Иван
|
||||
```
|
||||
|
||||
## Заключение
|
||||
|
||||
Класс `TypeExtension` значительно упрощает процесс сериализации и десериализации объектов, что позволяет сохранять
|
||||
состояние объектов в JSON или других форматов и загружать его обратно в приложение.
|
||||
|
||||
[На главную](../../index.md)
|
Reference in New Issue
Block a user