创建具有多个子节点的Python OOP树(决策树)
假设我有一个树数据结构,我将如何从下面的链接开始构建这种OOP树格式的树。我对如何从某些父节点中指定一定数量的子节点感到困惑,因为它不仅仅是一种左右格式 示例格式不在整个树的下面。客户需要选择是否订购,然后他们有3个产品类别可供选择,每个类别中有6个产品,从每个产品中,他们选择小、中或大的尺寸,然后选择12或3个数量创建具有多个子节点的Python OOP树(决策树),python,python-3.x,oop,data-structures,tree,Python,Python 3.x,Oop,Data Structures,Tree,假设我有一个树数据结构,我将如何从下面的链接开始构建这种OOP树格式的树。我对如何从某些父节点中指定一定数量的子节点感到困惑,因为它不仅仅是一种左右格式 示例格式不在整个树的下面。客户需要选择是否订购,然后他们有3个产品类别可供选择,每个类别中有6个产品,从每个产品中,他们选择小、中或大的尺寸,然后选择12或3个数量 'Order'
'Order'
******************/************************************************\
Yes***********Yes***********************Yes****************************No
/ / /
Category: Hot Drink, Cold Drink, Food
/// ///
Tea, Mocha, HotChoc Iced Tea, Iced Mocha, Iced HotChoc
/ / / / / \
S,M,L S,M,L S,M,L S,M,L S,M,L S,M,L
/ / /
1,2,3 1,2,3, 1,2,3
这是来自
您需要数量可变的参数;然后从变量arg迭代器构建一个列表
class Tree:
def __init__(self, cargo, *children):
self.cargo = cargo
self.children = list(children)
def __str__(self):
return str(self.cargo)
您可以考虑将每棵树表示为字典,将分支的名称映射到子树。我尝试用最近的帖子来做这件事,但被告知使用OOP框架更好吗?请看一下你原来的问题,看起来你想把3个决定放在一棵树上,即产品、尺寸和数量。我认为,如果你把它们分成3棵树,并结合结果,你最初的解决方案会更加清晰。这看起来有点像XY问题:你看到这个结构有什么用?
class Tree:
def __init__(self, cargo, *children):
self.cargo = cargo
self.children = list(children)
def __str__(self):
return str(self.cargo)