title: Python create functions / classes with variables at don't need to be passed in and have default values
body: <p>I often use **kwargs when I am creating a function, and then (in the event the user does not pass in a variable) I set a default value with a try and except statement like this:</p>
  <pre><code>def function(**kwargs):
  
      # Set a default value for 'start_date' if no value passed into the function
      try: start_date = kwargs['start_date']
      except KeyError: start_date = '2022-01-01'
  </code></pre>
  <p>I am pretty convinced this is not best practice.  For example when using Pandas DataFrames if a variable is not specified a default value is used.</p>
  <p>Eg:</p>
  <pre><code>df.drop(['column_a'], inplace=True)
  </code></pre>
  <p>If 'inplace' is not specified it defaults to False.  How can i reproduce this?</p>