docs: def take_branch(self, example):
          """
          Returns a `DecisionTreeNode` instance that can better classify
          `example` based on the selectors value.
          If there are no more branches (ie, this node is a leaf) or the
          attribute gives a value for an unexistent branch then this method
          returns None.
          """
          if self.attribute is None:
              return None
          value = self.attribute(example)
          return self.branches.get(value, None)