Довольно часто я обнаруживаю, что хочу получить в Python простой объект "dump", который ведет себя как объект JavaScript (т. Е. К его членам можно получить доступ либо с .member
, либо с ['member']
).
Обычно я просто прикрепляю это наверху .py
:
class DumbObject(dict):
def __getattr__(self, attr):
return self[attr]
def __stattr__(self, attr, value):
self[attr] = value
Но это немного отстойно, и в этой реализации есть хотя бы одна ошибка (хотя я не могу вспомнить, что это).
Итак, есть ли что-то похожее в стандартной библиотеке?
И, к сведению, простое создание экземпляра object
не работает:
>>> obj = object()
>>> obj.airspeed = 42
Traceback (most recent call last):
File "", line 1, in
AttributeError: 'object' object has no attribute 'airspeed'
Редактировать : (черт, должно быть, это уже пришло) ... Не волнуйтесь! Я не пытаюсь писать JavaScript на Python. Я чаще всего нахожу это место, когда я еще экспериментирую: у меня есть коллекция «вещей», которые не совсем правильно помещать в словарь, но при этом я не чувствую, что должен иметь свой собственный класс .