创建一个可以任意调用的类
1 class Test: 2 def __getattr__(self, name): 3 print name, 4 return self 5 6 def __call__(self, *args, **kwargs): 7 print "call", args, kwargs, 8 return self 9 10 t = Test() 11 #输出xxx call ('x',) {} yyy call ('y',) {'m': 1, 'n': 'nnnn'} zzz call () {} aaa bbb 12 t.xxx("x").yyy("y", m=1, n="nnnn").zzz().aaa.bbb
Test这个类的对象不论怎么“.”都不会出错。想当强壮。
PS:为什么要搞一个这样的类,看看htmlbase这个开源应用就知道了,有时候这样的类用起来很方便。