首页新闻找找看学习计划

python类的内存分配问题

0
悬赏园豆:10 [已解决问题] 解决于 2019-08-27 20:49

在类中调用本身并返回,发现每次输出的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不同
亚里仕多德的主页 亚里仕多德 | 初学一级 | 园豆:193
提问于:2019-08-27 08:48
< >
分享
最佳答案
0

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

收获园豆:10
会长 | 大侠五级 |园豆:5012 | 2019-08-27 09:13
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册