doubles/proxy_property.py (8 lines of code) (raw):
class ProxyProperty(property):
def __init__(self, name, original):
"""
:param str name: name of the doubled property
:param property original: the original property
"""
self._name = name
self._original = original
def __get__(self, obj, objtype=None):
if self._name in obj.__dict__:
return obj.__dict__[self._name].__get__(obj, objtype)
return self._original.__get__(obj, objtype)