В этом нет ничего плохого. Если ваш класс хорошо документирован, если у вас есть веская причина сделать это go для него. Рассмотрим следующий класс из модуля стандартной библиотеки shelve
, который по существу предоставляет интерфейс базы данных, подобный dict. Поскольку использование object[key] = value
будет записывать на диск, а получение этого объекта будет извлекать его с диска, он не даст вам тот же объект (обязательно, есть варианты кеширования)! Итак:
In [1]: import shelve
In [2]: data = [[1,2,3],[4,5,6]]
In [3]: database = shelve.open('db')
In [4]: database['key'] = data[0]
In [5]: database['key']
Out[5]: [1, 2, 3]
In [6]: database['key'] is data[0]
Out[6]: False
Эта часть документации относится к операторам присваивания переменной, например:
some_var = foo
Где действительно, никогда копий. И вы не можете этого изменить (ну, может быть, но это другой вопрос). Вы можете использовать __setitem__
и __getitem__
, но вы можете использовать sh.