Discuss / Python / 理解__getattr__过程

理解__getattr__过程

Topic source

水蔓姐姐

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

之前着实没懂,还是print了一下看运行过程。实践出真知

class Chain(object):
    def __init__(self, path = ' '):
        print("init......")
        self._path = path
    def __getattr__(self, path):
        print("getattr.......")
        return Chain('%s/%s' % (self._path, path))
    def __str__(self):
        return self._path
    __repr__ = __str__
    def __call__(self, users):
        print("call......")
        return self.__getattr__(":"+users)
>>> Chain().users('micheal')
init......
getattr.......
init......
call......
getattr.......
init......
 /users/:micheal

  • 1

Reply