疑问
Topic sourceChain().status.user.timeline.list的调用过程为: Chain().status调用getattr(self, path)方法,返回一个Chain类的实例,该实例的path属性为'/status',然后该实例接着调用_getattr(self, path)方法,此时path为'user',_path为'/status',该方法又返回一个Chain类的实例,_path属性为'/status/user',如此循环,知道语句执行完毕。
#伪代码
Chain().status.user.timeline.list
↓ Chain(path= '').__getattr__(self, path='status')
return Chain('%s/%s' % (self._path='', path= 'status'))=Chain('/status')
↓
Chain('/status').user.timeline.list
↓Chain(path= '/status').__getattr__(self, path='usr')
return Chain('%s/%s' % (self._path='/status', path= 'usr'))=Chain('/status/usr')
…………………………
- 1
Waslay__
class Chain(object):