Класс DictProperty
Класс DictProperty применяется для создания
дескриптора, который превращает атрибут класса
в словарь. При чтении свойства возвращается
словарь, хранящийся в указанном атрибуте.
При этом доступ к элементам словаря
осуществляется через сам объект свойства.
Класс удобен для организации настроек,
кэша или любых данных, которые нужно
хранить в виде пар ключ-значение.
Синтаксис
class MyClass:
my_dict = DictProperty('_my_dict')
Пример
Давайте создадим класс с свойством-словарём и добавим в него несколько значений:
from bottle import DictProperty
class Config:
settings = DictProperty('_settings')
config = Config()
config.settings['host'] = 'localhost'
config.settings['port'] = 8080
res = config.settings
print(res)
Результат выполнения кода:
{'host': 'localhost', 'port': 8080}
Пример
Давайте проверим, что разные экземпляры класса имеют независимые словари:
from bottle import DictProperty
class Storage:
data = DictProperty('_data')
storage1 = Storage()
storage2 = Storage()
storage1.data['key'] = 'abcde'
storage2.data['key'] = 'hello'
res1 = storage1.data['key']
res2 = storage2.data['key']
print(res1, res2)
Результат выполнения кода:
abcde hello
Смотрите также
-
класс
cached_property,
который кэширует результат вычисления свойства -
класс
lazy_attribute,
который вычисляет значение атрибута при первом обращении -
функцию
cookie_encode,
которая кодирует данные для cookie -
функцию
cookie_decode,
которая декодирует данные из cookie