Discuss / Python / 好难

好难

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

Reply