创建具有多个子节点的Python OOP树(决策树)

创建具有多个子节点的Python OOP树(决策树),python,python-3.x,oop,data-structures,tree,Python,Python 3.x,Oop,Data Structures,Tree,假设我有一个树数据结构,我将如何从下面的链接开始构建这种OOP树格式的树。我对如何从某些父节点中指定一定数量的子节点感到困惑,因为它不仅仅是一种左右格式 示例格式不在整个树的下面。客户需要选择是否订购,然后他们有3个产品类别可供选择,每个类别中有6个产品,从每个产品中,他们选择小、中或大的尺寸,然后选择12或3个数量 'Order'

假设我有一个树数据结构,我将如何从下面的链接开始构建这种OOP树格式的树。我对如何从某些父节点中指定一定数量的子节点感到困惑,因为它不仅仅是一种左右格式

示例格式不在整个树的下面。客户需要选择是否订购,然后他们有3个产品类别可供选择,每个类别中有6个产品,从每个产品中,他们选择小、中或大的尺寸,然后选择12或3个数量

                                                           '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)