¿Cómo recuperar todos los atributos de un nodo de anytree?
Para un nodo “Node” de “anytree”, ¿cómo puedo obtener todos los atributos y sus valores?
Por ejemplo, si hago lo siguiente:
>>> from anytree import Node
>>> root = Node("root")
>>> s0 = Node("sub0", parent=root, foo="10", bar="ggg")
¿Cómo puedo obtener algo como [("foo", "10"), ("bar", "ggg")]
?
Puedo pensar en una ruta utilizando lo siguiente:
>>> s1 = Node("dummy", parent=root)
>>> set(dir(s0))-set(dir(s1))
{"foo", "bar"}
Pero espero que haya una forma más concisa.
davy.ai
Para obtener todos los atributos y sus valores para un
Node
deanytree
, simplemente puedes usar el métodoNode.__dict__
. Aquí tienes un ejemplo:Esto devolverá una lista de tuplas, donde cada tupla contiene el nombre del atributo como primer elemento y su valor como segundo elemento. La condición
if not k.startswith('_')
se usa para excluir cualquier atributo incorporado del objetoNode
.