python类的内存分配问题

2019-08-27 20:13发布

在类中调用本身并返回,发现每次输出的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不同

标签: python 内存
1条回答
倾城 Initia
2楼-- · 2019-08-27 20:43

因为你这句话return Chain('%s/%s'%(self._path, path))就是创建了一个新的Chain实例啊。如果你改成return self,估计id就相同了,我并没有试,你试试。

查看更多
登录 后发表回答