20251003-1

This commit is contained in:
2025-10-03 23:38:09 +03:00
parent ab5710ba22
commit 22fa3b0445
4 changed files with 190 additions and 1 deletions

View 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)

View File

@@ -20,4 +20,5 @@
- [класс `StringExtensionConstants`](class_desc/extensions/string_extension_constant.md)
- [класс `StringExtension`](class_desc/extensions/string_extension.md)
- [класс `BoolExtension`](class_desc/extensions/bool_extension.md)
- [класс `BoolExtension`](class_desc/extensions/bool_extension.md)
- [класс `TypeExtension`](class_desc/extensions/type_extension.md)