看了大佬们的作业,我只好总结一下啦。大概看了有至少三种方法吧。
class Chain(object): def __init__(self, path=''): self.__path = path def __getattr__(self, path): # 方法三,添加一个条件语句 if path == 'users': return lambda name: Chain('%s/%s/%s' % (self.__path, path, name)) return Chain('%s/%s' % (self.__path, path)) # 方法一,定义一个users方法 def users(self, name): return Chain('%s/%s/%s' % (self.__path, 'users', name)) # 方法二,让实例可以实现直接调用 def __call__(self, path): return Chain('%s/%s' % (self.__path, path)) def __str__(self): return self.__path __repr__ = __str__ print(Chain().abc.users('michael').repos)
优秀
Sign in to make a reply
Daisy爱上飞燕草
看了大佬们的作业,我只好总结一下啦。大概看了有至少三种方法吧。