title: Keyword arguments aliases in python
body: <p>It always seemed odd to me that there are keyword arguments (or arguments) that can be passed to functions or <code>__init__</code> methods of classes. How do you prevent user who is not familiar to your code from making a mistake? How to get user instantly ( almost instinctively ) familiar to your code without badly written or long winded documentation or to many trials and errors preventing user from quickly and comfortably use your code or module ?</p>
  
  <p>In python we are lucky since we have <code>help</code> and <code>dir</code> functions that can often guide us to better understanding what some function parameters are. But sometimes there is poorly written <code>__doc__</code> string that explains nothing. </p>
  
  <p>Let me give you some examples of what i mean:</p>
  
  <pre><code>    &gt;&gt;&gt; help(str.lower)
      Help on method_descriptor:
  
          lower(...)
          S.lower() -&gt; string
  
      Return a copy of the string S converted to lowercase
  </code></pre>
  
  <p>.
  For example here we have some function that have <strong>...</strong> input parameters. What does this parameter stands for, for complete newbie ( as was I when i first dived into python ) this was confusing and often i just skipped this section. </p>
  
  <p>Some of websites that offer advice or tutorial just print-out help function file or just implement 1 of many functionalities of sed function. </p>
  
  <p><a href="https://www.tutorialspoint.com/python/string_lower.htm" rel="nofollow noreferrer">1 functionality of example function</a></p>
  
  <p>or directly from python.org </p>
  
  <p><em>str.lower()<br>
  Return a copy of the string with all the cased characters [4] converted to lowercase.
  For 8-bit strings, this method is locale-dependent.</em></p>
  
  <p>Now for someone who just started programing and don't ( or can't ) dive into bits and bytes , addresses and etc, this is some ancient spell that only master warlock can perform, don't even let me started on why this is not helping for non-english speaking people. </p>
  
  <p>For this particular example function i can figure out 2-3 additional examples where it can do its job in different way, also i had to find out that this example function could be used by imputing string into <code>str.lower(here)</code> part.</p>
  
  <p>The big problem here ( as i see it of course ) is that str with little googling can be descriptive by itself, and its functionality can be logically concluded only via wikipedia.</p>
  
  <p>If i summarize the questions is simple, is there a way to modify the keywords when using as parameters to accept more names than we define so user would not have to rip his/her hair of on first step of the introduction tutorial? </p>
  
  <p>Now i know some of you guys will say something along the lines : "if you dont understand it, don't do it" or "i ain't yo mama to teach you stuff"... to that i have to say "sharing is caring" and "You sometimes need help coding too otherwise you would not be on this website ".</p>