А какого типа значения? Если, например, они типа int или str, тогда можно переопределить функцию __int__
class DirectAttr:
def __init__(self, obj, attr):
self.obj = obj
self.attr = attr
def __int__(self):
return getattr( self.obj, self.attr )
class Value:
def __init__( self, value ):
self.value = value
val = Value( 23 )
direct_value = DirectAttr( val, 'value' )
print( int(direct_value) ) # 23
val.value = 45
print( int(direct_value) ) # 45
Естественно, у словаря, правда, придется переопределить метод __getitem__ , который должен явно приводить значение к типу int, или после обращения к словарю dict, если использовать стандартный словарь, явно писать: int(dic).
К сожалению, в питоне нет неявного приведения типа, задаваемого пользовательским оператором, как в С++. Поэтому простого решения (переменная-указатель) без изменения кода, где используется словарь (или самого словаря), не добиться.