class_docstr: A `DecisionNode` encapsulates internal node in the tree
  Unlike a `LeafNode`, it contains very little actual logic beyond tying the tree together
code: def __init__(
      self,
      split: Split,
      left_child_node: TreeNode,
      right_child_node: TreeNode,
      depth=0,
  ):
      super().__init__(split, depth, left_child_node, right_child_node)
  
imports: from typing import Union, Tuple
  from .data import Data
  from .split import Split, SplitCondition
label_desc: Use image node_id 1 to create a new DecisionNode object from inherited base classes: TreeNode with example: obj = DecisionNode(split, left_child_node, right_child_node, depth)