Я хотел бы представлять объект в виде строки, чтобы он мог быть доступен как ключ словаря, так и сам объект. т.е.Python, представляют собой нестроковый объект в виде строки?
class test(object):
def __init__(self, name, number_array):
self.name = name
self.number_array = number_array
self.graph= barChart(number_array)
sample_obj = test('test_object', [(x1,y1), (x2,y2)etc.])
, но так, что {sample_obj: another_object}
будет выглядеть {'test_object': another_object}
в то же время сделать что-то подобное можно:
for key, val in sample_dict.items(): print(key.name, key.graph)
, а также:
>>> sample_dict['test_object']
another_object
В настоящее время нет способа предоставить такие ключевые псевдонимы, чтобы 'dict' обрабатывал' 'test_object'' как псевдоним для' some_object'. См. [PEP-455] (http://legacy.python.org/dev/peps/pep-0455/) для предложения, которое добавит новый тип 'dict' с этой функциональностью. – chepner
Возможно ли изменить метод по умолчанию для доступа к объекту в словаре? так что вместо того, чтобы сказать, D ['foo'] проверяет, если t .__ eq __ ('foo') проверяет, является ли t.name .__ eq __ ('foo')? Можно ли переопределить __getitem__? – user3467349
Чепнер ошибается. Вы можете делать то, что хотите. – haael