title: Why explicitly define class inputs
body: <p>I am reading through 'Programming Python' and one of the examples in the book where a class is created is the following:</p>
  
  <pre><code>class Person:
      def __init__(self, name, age, pay=0, job=None):
          self.name = name
          self.age = age 
          self.pay = pay 
          self.job = job
  </code></pre>
  
  <p>My question is why pay is set equal to 0 and job is set at None unlike name and age which are not set to anything. Is this because it enforces variable type? Or is it just in case only name and age are passed to the class? Or something else for that matter.</p>