title: Overriding Enum __call__ method
body: <p>I have an <code>Enum</code> like so:</p>
  
  <pre><code>from enum import Enum
  
  class Animal(Enum):
  
       cat = 'meow'
       dog = 'woof'
       never_heard_of = None
  
       def talk(self):
           print(self.value)
  </code></pre>
  
  <p>I would like to override the <code>__call__</code> method so that a call like          <code>Animal('hee-haw')</code> returns <code>Animals.never_heard_of</code> or <code>None</code> instead of raising <code>ValueError</code>. I would rather avoid a <code>try</code> statement everytime I call the <code>Animal</code>. </p>
  
  <p>What would be a pure Python equivalent of <code>Enum.__call__</code> ?</p>