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