Discuss / Python / 参考了同学的代码

参考了同学的代码

Topic source

参考了同学的代码然后才写出来的:

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

    def __getattr__(self, item):
        if item == 'user':
            return lambda name: Demo('%s/%s' %(self._path, name))
        else:
            return Demo('%s/%s' %(self._path,item))

    def __str__(self):
        return self._path

print(Demo().demoApi.account.user('Jack').info)

重点理解就是

# 没有找到属性的情况下才调用__getattr__,已有的属性不会在其中找,
然后需要特殊化处理的user,让其返回一个函数

  • 1

Reply