跳到主要内容

ModuleAttributeTree

类源码

ModuleAttributeTree(
walk_method: Callable[[str, dict[str, Any], list[T]], T], root_name: str = "."
)

模块或模块包的成员属性树。

该树重构了一个完整模块包中各级成员的树状结构,并且可以转换成序列化后的字典/列表。

参数​

输入​

参数类型必选
说明
walk_methodCallable[[str, dict[str, Any], list[T]], T]

用来序列化树节点的方法。其输入参数为:

  1. 节点的部分名称。
  2. 当前节点的成员属性。
  3. 当前节点所有已经序列化后的子成员。

该方法将会返回代表当前节点的序列化对象。

root_namestr根节点的名称。

方法​

add​

self.add(node_full_name: str, node_attrs: Mapping[str, Any] | None = None)

向成员属性树添加一个节点。

输入​

参数类型必选
说明
node_full_namestr形如"package.module.member"的完整名称。
node_attrsMapping[str, Any] | None可选字典,定义了要添加到当前节点的成员属性。

serialize​

v_1: T = self.serialize()

将整棵树从根节点开始完全序列化。

输出​

参数类型
说明
v_1T根节点的序列化对象,包含了所有的嵌套成员。

serialize_unpacked​

v_1: list[T] = self.serialize_unpacked()

将整棵树从根节点开始完全序列化,但是将根节点解包成包含自身(定义为空节点)的列

不同于self.serialize(),该方法将根节点视作一个没有子成员的叶子节点,并将根节点实际的全部子成员视作根节点的同级分支。因此,所返回的结果永远是一个列表。

输出​

参数类型
说明
v_1list[T]包含了序列化后节点的列表。