0

对于 an ,如何获取所有属性及其值?anytree Node

例如,如果我这样做:

>>> from anytree import Node
>>> root = Node("root")
>>> s0 = Node("sub0", parent=root, foo="10", bar="ggg")

我怎样才能得到类似的东西[("foo", "10"), ("bar", "ggg")]

我可以通过以下方式想到一条路线:

>>> s1=Node("dummy", parent=root)
>>> set(dir(s0))-set(dir(s1))
{'foo', 'bar'}

但我希望有更简洁的方法。

4

1 回答 1

1

这适用于您的情况:

s0.__dict__.items()

但是,请注意,此方法依赖于内部实现anytree(依赖特定实现总是一个坏主意)。此外,该__dict__属性还包含名称、父级和(可选)子级(您可能希望摆脱这些)。

[(k, v) for k, v in s0.__dict__.items() if k not in ('name', 'parent', 'children')]
于 2022-01-03T13:01:30.717 回答