title: Pointing to a class without creating an object for ease of access
body: <p>I have a parent class, which is the preliminary requirements for a bunch of tools.</p>
  <h3>Minimal example:</h3>
  <pre><code>class Tools():
      def __init__(self, name, age):
          self.name = name
          self.age = age
  
  class Func_a(Tools):
      def __init__(self, name, age, sex):
          super().__init__(name, age)
          self.sex = sex
      
      def _func_a(self):
          print(self.name)
  
  class Func_b(Tools):
      def __init__(self, name, age, sex):
          super().__init__(name, age)
          self.sex = sex
      
      def _func_b(self):
          print(self.name)
  </code></pre>
  <p>I then have a map that I use to call one or the other function, depening on some prerequisites</p>
  <pre><code>CLASS_MAP = {
      &quot;func_a&quot;:Func_a(&quot;name1&quot;, 25, &quot;m&quot;),
      &quot;func_b&quot;:Func_b(&quot;name2&quot;, 100, &quot;F&quot;)
  }
  
  </code></pre>
  <p>And then to see what's going on:</p>
  <pre><code>first_class = CLASS_MAP[&quot;func_a&quot;]
  second_class = CLASS_MAP[&quot;func_b&quot;]
  
  
  print(first_class.name)
  print(second_class.name)
  </code></pre>
  <p>My question is, is there any way for me to point to the specific class in my dict without actually calling the class and instantiating an object?</p>
  <p>Depending on certain constraints, I have to call one of the classes (e.g. Func_a, Func_b ... Func_f) [Total of 6 sub-classes]</p>
  <p>I implemented using a bunch of if-else statements, but that was quite messy and a lot of code was redundant between the two.</p>
  <p>If my map can point to the correct class, but not actually call it, that would be ideal. Because currently even if I remove<code>second_class = CLASS_MAP[&quot;func_b&quot;]</code>, <code>func_b</code> is still being called from within the map, correct me if I'm wrong!</p>