python 嵌套类实例_[Python] 实现嵌套类,类中类

今天是大年三十,新年快乐噢!!!

在本篇文章里,试图实现类中类,并使底层类也可以调用上层类的属性。

首先创建用来测试的数据结构:

在该数据结构中,self.data存放着该节点的数据,self.son存放下一级类,self.mself存放上一级类的self(用来调用上一层类的属性),getself方法用于把自己的self给出去。

代码实现1

首先简单的创建三个实例,此时他们没有上下级的连起来:

输出:

现在将这三个实例连起来,具体的连接方法是:n1.son是n2,n2.son是n3:

测试是否可以从n1访问n3的data,再返回访问n1的data:

输出:

上面的方式并没有把一个实例整个搬到或复制进self.son里去,而仅仅是把实例的引用给了self.son。这可以从内存地址看出来:681b2fa36f52b3a4084bd6c9189114d3.png他们具有相同的内存地址

代码实现2

方式1或许不够自动化。这里尝试着用一个函数来完成这种事:

测试:

输出:

与方式1不同的是,在给self.son赋值的时候,这里直接给进去类的实例。输出结果也证实了该方法的可行性。

应用

或许可以构建能够双向遍历访问的树,图之类的东西。

如果有其他更简便规范的方法,请务必在评论区题出  谢谢!!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值