title: Reuse the decorated function
body: <p>This question is about reusing the decorated function in the outer scope.</p>
  
  <p>It is awesome if I could get the following piece of code to work. I know the function is passed in to <code>eat</code> as a parameter, but is there a way to keep <code>apple</code> recognized in the scope?</p>
  
  <pre><code>class A:
  
    def eat( s, func ):
      print 123
  
    def __init__(s):
      @s.eat
      def apple():
        print 456
  
      apple() # "apple" is not defined ...
  </code></pre>
  
  <p>Thanks!</p>
  
  <p>Sincerely,</p>