交作业&求教
Topic source可以在类中定义users方法,把参数输入给类。
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,n):
self._user=n
return Chain('%s/%s' % (self._path,self._user))
解决方法:给lambda的x设置默认的参数
class Chain(object):
def __init__(self, path=''):
self._path = path
def __getattr__(self, path):
if path == 'users':
return lambda x='' : Chain('%s/%s/:%s' % (self._path,path, x))
return Chain('%s/%s' % (self._path, path))
def __str__(self):
return self._path
__repr__ = __str__
- 1
水滴竹沙
运行结果:
但是: 对于Chain().users.repos及Chain().users().repos并不能得到/users/repos,此时users已变成方法,要么提示是Function,要么提示缺少参数
问题,如何修改可以同时满足Chain().users('michael').repos,Chain().users.repos,Chain().users().repos