title: Why are parenthesis optional when defining a class, but mandatory when defining a function?
body: <p>In Python, defining a function with an empty parameter list requires a set of empty parenthesis.  However, defining a <code>class</code> with the default superclass does not require a set of empty parenthesis; rather, those are optional, and appear to be uncommon.  Why is it so?</p>
  
  <p><em>See also: <a href="https://stackoverflow.com/q/4109552/974555">Python class definition syntax</a></em>.</p>