是否可以自定义对嵌套对象属性的响应?

It is possible to customize the response to nested object attributes?

我想弄清楚是否有办法 return 嵌套对象的一个​​属性,当属性使用 'dot' 表示法寻址时,但 return 不同请求后续属性时该对象的属性。 例如)

class MyAttributeClass:
    def __init__(self, value):
        self.value = value
        from datetime.datetime import now
        self.timestamp = now()

class MyOuterClass:
    def __init__(self, value):
        self._value = MyAttributeClass(value)

test = MyOuterClass(5)


test.value (should return test._value.value)
test.value.timestamp (should return test._value.timestamp)

有什么办法可以做到吗?我想,如果有的话,它涉及定义 MyOuterClass 的 __getattr__ 方法,但我一直在四处搜索,但我还没有找到任何方法来做到这一点。这是不可能的吗?做不成也没什么,但是我想做很多次了,就是想知道有没有办法。

现在看来很明显,但继承才是答案。将属性定义为自定义 class 的实例,它继承自我想要用于普通属性访问的数据类型(即 object.attr),并为该子 class 提供后续属性请求所需的属性(即 object.attr.subattr).