title: Init a class with parameters that are only used by subclass
body: <p>Ok, so I'm not great with object-oriented stuff and I'm trying to figure out the "right" way to do this.</p>
  
  <p>As a contrived example, class <code>Circle</code> is conceptually a subclass of <code>LogarithmicSpiral</code>, since circles are a special case of spirals, but because it's a more restricted type of thing, there's an opportunity to specify it in a different, more numerically accurate way:</p>
  
  <pre><code>mycircle = Circle(radius=, arc_length=, number_of_points=)
  </code></pre>
  
  <p>rather than</p>
  
  <pre><code>myspiral = LogarithmicSpiral(start_point=, step_vector=, number_of_points=)
  </code></pre>
  
  <p>To keep the subclass relationship, the guts of the initialization are still in <code>LogarithmicSpiral</code>, but it would then need to become something like <code>LogarithmicSpiral(start_point=None, step_vector=None, radius=None, arc_length=None, number_of_points=)</code>, with mutually exclusive parameters that can't be specified at the same time.  But then the <code>LogarithmicSpiral</code> class has extra parameters that aren't intended to be used with it directly.</p>
  
  <p>What's the right way to go about something like this?  Make them both subclasses of some other object (but what geometrical shape would that be)?  Are there ways to have private initialization stuff that is only used by subclasses?</p>
  
  <p>(This is for <a href="https://github.com/scipy/scipy/pull/4607" rel="nofollow">https://github.com/scipy/scipy/pull/4607</a>)</p>