在类中调用本身并返回,发现每次输出的id都不同,这是为什么呢?
初学者问题描述有所不清楚,还麻烦看一看代码
#链式调用
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__
chain = Chain()
chain.Wenzhou #TODO:每次调用id不同
因为你这句话return Chain('%s/%s'%(self._path, path))
就是创建了一个新的Chain实例啊。如果你改成return self
,估计id就相同了,我并没有试,你试试。