Discuss / Python / 无法理解Chain().status.user.timeline.list执行过程

无法理解Chain().status.user.timeline.list执行过程

Topic source

我是核仁

#1 Created at ... [Delete] [Delete and Lock User]
class Chain(object):

    def __init__(self, path=''):
        self._path = path

    def __getattr__(self, path):
        return Chain('%s/%s' % (self._path, path))

    def __str__(self):
        return self._path

    __repr__ = __str__


print(Chain().status.user.timeline.list)

调用Chain().status,输出/status可以明白。 但调用Chain().status.user,输出status/user就不明白了 按照输出的结果,难道是按从左往右的顺序挨个执行Chain().status.user。 首先执行Chain().status,得到Chain('/status') 接着执行Chain('/status').user,得到Chain('/status/user'),最后返回 /status/user。 是这样的吗???

在网上看到了解释: Chain().status.user 等价于下面两条中的任一命令: Chain('/status').user Chain('/status/user')

但是无法理解。请各位赐教。

首先执行Chain().status,得到Chain('/status') 接着执行Chain('/status').user,。。。 最后得到Chain('/status/usertim/eline/list'), 之后print时通过str()得到‘/status/usertim/eline/list’ 个人见解,仅供参考。

通过str()=通过str()

FOR_lqq

#4 Created at ... [Delete] [Delete and Lock User]

从左到右,先执行Chain().status,返回chain('/status').user.timeline.list 函数处理之后的结果是原函数的参数。


  • 1

Reply