title: Make a python class method callable using 2 names
body: <p>There is an existing class which I'd like some of it's functions to be callable using a different name so it complies with a new interface.</p>
  
  <p>It seems I can achieve this using one of these 2 ways:</p>
  
  <pre><code>class Test:
      def __init__(self):
          self.fun2 = getattr(self, "fun1")
  
      def fun1(self):
          print("Hello from func1")
  </code></pre>
  
  <pre><code>class Test:
      def __init__(self):
          pass
  
      def fun1(self):
          print("Hello from func1")
  
      fun2 = fun1
  </code></pre>
  
  <p>I myself prefer option 1.</p>
  
  <p>Is there one way generally preferred over the other? Or a third way I haven't though about maybe?</p>