Какой простой способ создать тривиальный одноразовый объект Python? - PullRequest
9 голосов
/ 17 октября 2008

Я хотел бы создать тривиальный одноразовый объект Python для хранения некоторых параметров командной строки. Я хотел бы сделать что-то вроде этого:

options = ??????
options.VERBOSE = True
options.IGNORE_WARNINGS = False

# Then, elsewhere in the code...
if options.VERBOSE:
    ...

Конечно, я мог бы использовать словарь, но options.VERBOSE более читабелен и его легче набирать, чем options['VERBOSE'].

Я думал , что я смогу сделать

options = object()

, поскольку object является базовым типом всех объектов класса и, следовательно, должен быть чем-то вроде класса без атрибутов. Но это не работает, потому что объект, созданный с использованием object(), не имеет члена __dict__, и поэтому к нему нельзя добавить атрибуты:

options.VERBOSE = True
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
AttributeError: 'object' object has no attribute 'VERBOSE'

Какой самый простой «питонный» способ создания объекта, который можно использовать таким образом, желательно без необходимости создания дополнительного вспомогательного класса?

Ответы [ 11 ]

0 голосов
/ 24 июня 2011

простой объект и именованные кортежи - путь

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...