class_docstr: A representation of a leaf node in the tree
  In addition to the normal work of a `Node`, a `LeafNode` is responsible for:
      - Interacting with `Data`
      - Making predictions
code: def __init__(self, split: Split, depth=0, value=0.0):
      self._value = value
      super().__init__(split, depth, None, None)
  
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 LeafNode object from inherited base classes: TreeNode with example: obj = LeafNode(split, depth, value)