关于Chain().users('michael').repos代码的实现,不用__call__,这样有问题吗?
Topic source def users(self, name):
你这很明显,是用户自己重新定义了一个user函数,而__call__()是特殊用途的函数,表示实列调用自己的函数,那如果需求不是 ‘users',那么你自定的users函数是不是又要改名字?
- 1
def users(self, name):
你这很明显,是用户自己重新定义了一个user函数,而__call__()是特殊用途的函数,表示实列调用自己的函数,那如果需求不是 ‘users',那么你自定的users函数是不是又要改名字?
冯先生Stefan
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)