Шаг 114.
Python: тонкости программирования. ... . Записи, структуры и объекты переноса данных. types.SimpleNamespace - причудливый атрибутивный доступ

    На этом шаге мы рассмотрим особенности использования объектов этого класса.

    А вот еще один "эзотерический" вариант реализации объектов данных в Python: types.SimpleNamespace.


См. документацию Python "types.SimpleNamespace": https://docs.python.org/3.3/library/types.html.

    Этот класс был добавлен в Python 3.3, и он обеспечивает атрибутивный доступ к своему пространству имен.

    Это означает, что экземпляры SimpleNamespace показывают все свои ключи как атрибуты класса. А значит, вы можете использовать "точечный" атрибутивный доступ объект.ключ вместо синтаксиса с индексацией в квадратных скобках объект['ключ'], который применяется обычными словарями. Все экземпляры также по умолчанию включают содержательный метод __repr__.

    Как видно из его названия, тип SimpleNamespace прост в использовании! Это, в сущности, прославленный словарь, который предоставляет доступ по атрибуту и выдает приличную распечатку. Атрибуты могут свободно добавляться, изменяться и удаляться.

>>> from types import SimpleNamespace
>>> car1 = SimpleNamespace(цвет='красный',
		       пробег=3812.4,
		       автомат=True)
# Метод repr по умолчанию:
>>> car1
namespace(автомат=True, пробег=3812.4, цвет='красный')
# Экземпляры поддерживают атрибутивный доступ и могут изменяться:
>>> car1.пробег = 12
>>> car1.лобовое_стекло = 'треснутое'
>>> del car1.автомат
>>> car1
namespace(лобовое_стекло='треснутое', пробег=12, цвет='красный')

    На следующем шаге мы подитожим изученный материал.




Предыдущий шаг Содержание Следующий шаг