我有一棵树,它的一些节点有一个属性'a'我想测试一个给定的节点是否有这个属性,我所做的是
if not n.a:
print "no a "
但我得到一个错误 treenode n has no attribute a
有什么方法可以测试吗?
我有一棵树,它的一些节点有一个属性'a'我想测试一个给定的节点是否有这个属性,我所做的是
if not n.a:
print "no a "
但我得到一个错误 treenode n has no attribute a
有什么方法可以测试吗?
你可以只使用通用的pythonic方式
if not hasattr(node, "a"):
print "a attribute not found in node:", node
如果“a”在您的ETE 树中注册为常规功能,您还可以使用以下方法:
from ete2 import Tree
t = Tree()
t.populate(5)
t.children[0].add_features(a = "My annotation")
for node in t.traverse():
if "a" in node.features:
print node.get_ascii(attributes=["a", "name"])
这会打印出这样的东西:
/-aaaaaaaaac
-My annotation, NoName
| /-aaaaaaaaad
\NoName
\-aaaaaaaaae