Discuss / Python / 关于Chain().users('michael').repos代码的实现,不用__call__,这样有问题吗?

关于Chain().users('michael').repos代码的实现,不用__call__,这样有问题吗?

Topic source

class Chain(object):

    def __init__(self, path = ''):

        self._path = path

    def users(self, name):

        return Chain('/users/%s' % name)

    def __getattr__(self, path):

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

    def __str__(self):

        return self._path

    __repr__ = __str__

#调用

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

hei黑200

#2 Created at ... [Delete] [Delete and Lock User]
 def users(self, name):

你这很明显,是用户自己重新定义了一个user函数,而__call__()是特殊用途的函数,表示实列调用自己的函数,那如果需求不是 ‘users',那么你自定的users函数是不是又要改名字?


  • 1

Reply