title: How to implement deprecation in python with argument alias
body: <p>We are developing a python library and would like to change the way some function arguments are named in some functions. </p>
  
  <p>We would like to keep backward compatibility and thus we would like to find a way to create alias for function arguments.</p>
  
  <p>Here is an example:</p>
  
  <p><strong>Old Version:</strong></p>
  
  <pre><code>class MyClass(object):
    def __init__(self, object_id):
      self.id = object_id
  </code></pre>
  
  <p><strong>New Version:</strong></p>
  
  <pre><code>class MyClass(object):
    def __init__(self, id_object):
      self.id = id_object
  </code></pre>
  
  <p>How can we make the class to be compatible with both calling ways:</p>
  
  <pre><code>object1 = MyClass(object_id=1234)
  object2 = MyClass(id_object=1234)
  </code></pre>
  
  <p>I could of course create something like this:</p>
  
  <pre><code>class MyClass(object):
    def __init__(self, object_id=None, id_object=None):
      if id_object is not None:
        self.id = id_object
      else:
        self.id = object_id
  </code></pre>
  
  <p>However, it would change the number of arguments and we strictly want to avoid this.</p>
  
  <p>Is there any way to declare a method alias or an argument alias ?</p>