Discuss / Python / 关于链式调用那里,分享一下我的邪路,没有用 __call__

关于链式调用那里,分享一下我的邪路,没有用 __call__

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__

    def users(self, name):
        return Chain("/%s/%s" % ("users", name))


print(Chain().users('michael').repos)


感觉这个题完成了一个断句游戏。。。

用call的伙伴是把Chain().user看成一体,然后返回一个Chain()实例把"Michael"当参数传入

而我是把users定义成一个方法,'Michael'是一个参数传入。。。。


  • 1

Reply