今天是大年三十,新年快乐噢!!!
在本篇文章里,试图实现类中类,并使底层类也可以调用上层类的属性。
首先创建用来测试的数据结构:
在该数据结构中,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。这可以从内存地址看出来:他们具有相同的内存地址
代码实现2
方式1或许不够自动化。这里尝试着用一个函数来完成这种事:
测试:
输出:
与方式1不同的是,在给self.son赋值的时候,这里直接给进去类的实例。输出结果也证实了该方法的可行性。
应用
或许可以构建能够双向遍历访问的树,图之类的东西。
如果有其他更简便规范的方法,请务必在评论区题出 谢谢!!