這應該可以解釋我想實現Python的遞歸代理
class A(object):
def hello(self):
print "hello"
a = A()
a.b = A()
a.b.c = A()
a.b.d = []
a.b.d.append(A())
p = Proxy(a)
print p.b
"b accessed"
<__main__.A object at 0xb73f3bec>
print p.b.c
"b accessed"
"c accessed"
<__main__.A object at 0xb73f3dec>
print p.b.d
"b accessed"
"d accessed"
[<__main__.A object at 0xb73f3bcc>]
print p.b.d[0]
"b accessed"
"d accessed"
<__main__.A object at 0xb73e766c>
print p.b.d[0].hello()
"b accessed"
"d accessed"
"hello called"
"hello"
基本上只要我走它使返回的代理對象的結構。如果只在第一次訪問該屬性並將其存儲在「父」時才創建這些代理對象,那將是最好的。這樣做的目的是爲了讓我能做到這之前的任何方法稱爲(嵌套)對象
我有看一些邏輯: http://code.activestate.com/recipes/496741-object-proxying/ 但它只做了第一層,而我不能看看如何操作它來按需要工作。