class_docstr: A node in a shadow tree. Each node has left and right pointers to child nodes, if any.
  As part of tree construction process, the samples examined at each decision node or at each leaf node are
  saved into field node_samples.
class_docstr_tok: ["A","node","in","a","shadow","tree",".","Each","node","has","left","and","right","pointers","to","child","nodes",",","if","any",".","As","part","of","tree","construction","process",",","the","samples","examined","at","each","decision","node","or","at","each","leaf","node","are","saved","into","field","node_samples","."]
docstr: Returns the feature name used at this node
docstr_tok: ["Returns","the","feature","name","used","at","this","node"]
code: def feature_name(self) -> (str, None):
      """Returns the feature name used at this node"""
      if self.shadow_tree.feature_names is not None:
          return self.shadow_tree.feature_names[self.feature()]
      return None
  
imports: from abc import ABC, abstractmethod
  from numbers import Number
  from typing import List, Tuple, Mapping
  import numpy
  import pandas
  import sklearn
  from dtreeviz import utils
label_desc: Use image node_id 4 for calling the ShadowDecTreeNode obj's underlying member method code with example usage: obj.feature_name() and returns: None, self