1

我正在尝试构建一个如下的python调用图,我有一个具有内部和外部依赖项的更改,并且这些依赖项需要递归进入,直到每个叶子都得到一个关闭的更改......我有逻辑来获取内部和外部依赖,我需要一些输入或主体如何构建如下图..

                 change
             /    \
            /      \
           /        \
internal dependency   external dependency
         / \                      /\   
        /   \                    /  \
   /     \                  /    \
  /       \                /      \

internal dep external dep internal dep external dep (重复此操作,直到依赖项更改处于关闭状态)

4

1 回答 1

2

如果您将预期的输出放在一边,这将更容易。然后创建你想要的树结构:

class Tree(object):
    def __init__(self, name, *children):
        self.name = name
        self.children = children

    def __str__(self):
        return '\n'.join(self.tree_lines())

    def tree_lines(self):
      yield self.name
      last = self.children[-1] if self.children else None
      for child in self.children:
          prefix = '`-' if child is last else '+-'
          for line in child.tree_lines():
          yield prefix + line
          prefix = '  ' if child is last else '| '


tree = Tree('Change',
    Tree('External',
        Tree('External A'),Tree('External B'),Tree('External C',Tree('Sub Ext C'))),
    Tree('Internal',
        Tree('Internal A'),Tree('Internal B',Tree('Sub Int B')),Tree('Internal C'))
    )   

print tree

印刷:

Change
+-External
| +-External A
| +-External B
| `-External C
|   `-Sub Ext C
`-Internal
  +-Internal A
  +-Internal B
  | `-Sub Int B
  `-Internal C
于 2013-04-22T21:08:23.003 回答