title: Instance attribute attribute_name defined outside __init__
body: <p>I split up my class constructor by letting it call multiple functions, like this:</p>
  
  <pre><code>class Wizard:
      def __init__(self, argv):
          self.parse_arguments(argv)
          self.wave_wand() # declaration omitted
  
      def parse_arguments(self, argv):
          if self.has_correct_argument_count(argv):
              self.name = argv[0]
              self.magic_ability = argv[1]
          else:
              raise InvalidArgumentsException() # declaration omitted
  
  # ... irrelevant functions omitted
  </code></pre>
  
  <p>While my interpreter happily runs my code, Pylint has a complaint:</p>
  
  <p><code>Instance attribute attribute_name defined outside __init__</code></p>
  
  <p>A cursory Google search is currently fruitless. Keeping all constructor logic in <code>__init__</code> seems unorganized, and turning off the Pylint warning also seems hack-ish.</p>
  
  <p>What is a/the <strong>Pythonic</strong> way to resolve this problem?</p>