python树结构_Python中一个创建树结构的方法。

最近在看一些Python算法有关的东西。

从最简单的树的实现说起,当树这样的数据结构被原型化,它往往会是一个非常有用且很灵活的类型。

这时候可以用一个Bunch的设计模式。

实现方式有很多,但是基本上都会具备以下要素:

# Bunch设计模式

class Bunch(dict):

def __init__(self, *args, **kwds):

super(Bunch, self).__init__(*args, **kwds)

self.__dict__ = self

你可以用命令行参数的形式创建相关对象,并设置任何属性:

x = Bunch(name='He', position='Club')

print(x.name)

输出结果:

He

由于它继承自dict类,我们可以自然而然地获得大量相关内容,比如相对属性值的遍历,或者是是查询一个属性是否存在:

x = Bunch(name='He', position='Club')

print(x.name)

T = Bunch

t = T(left=T(left="a", right="b"), right=T(left="c"))

print(t.left)

print(t.left.left)

print(t['left']['right'])

print("left" in t.right)

print("right" in t.right)

输出结果:

{'right': 'b', 'left': 'a'}

a

b

True

False

当然,该模式下不仅可用于树结构的创建,如果你希望有一个灵活的对象,并且属性可以从构造器中被动态设置时,也可以用该模式来实现。

谢谢各位关注,最近天气转冷,大家注意保暖,谨防感冒!

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值