好难
Topic source主要用了builder模式 , 巧妙地用了__str__方法
1、Chain()
1.1. 新建Chain实例时调用了 __init__方法,传入path='',此时self.path=''
2、status
2.1. 访问status属性时发现Chain类中不存在,随即调用__getattr__方法,传入path='status'
2.2. 方法中返回了Chain对象,并给该Chain对象绑定了path=''+'/'+'status'='/status',此时self._path = '/status'
2.3. 又因为重写的__str__方法中返回了self._path,那么此时若在IDE中直接print对象的话,就直接打印了'/status'
2.4. 又因为设置了__repr__ = __str__,所以在python交互环境中也能直接打印出'/status'
3、user
同'2'的分析步骤,最终打印出'/status/user',然后依此类推,最终打印出'/status/user/timeline/list'
- 1
独孤泠然July
看不懂看不懂看不懂