В словарях есть элементы, и поэтому для получения значения ключа используется все, что определено как __getitem__()
.
У объектов есть атрибуты, и поэтому для получения значения атрибута используется __getattr__()
.1005 *
Вы можете теоретически переопределить одно, чтобы указать на другое, если вам нужно - но зачем вам это нужно?Почему бы не написать вместо этого вспомогательную функцию:
Python 2.x:
def get_value(some_thing, some_key):
if type(some_thing) in ('dict','tuple','list'):
return some_thing[some_key]
else:
return getattr(some_thing, some_key)
Python 3.x:
def get_value(some_thing, some_key):
if type(some_thing) in (dict,tuple,list):
return some_thing[some_key]
else:
return getattr(some_thing, some_key)