title: how to return None if constructor arguments invalid
body: <p>Currently I have something like </p>
  
  <pre><code>if name and password:
       user = User(name, password)
       ...do stuff
  </code></pre>
  
  <p>I'd like to refactor it to something:</p>
  
  <pre><code>user = User(name, password)
  if user:
       ...do stuff
  </code></pre>
  
  <p>I create a <code>User()</code> class:</p>
  
  <pre><code>class User():
      def __init__(self, name, password):
          if name and password:
              self.name, self.password = name, password
  </code></pre>
  
  <p>but in this case even if <code>name</code> or <code>password</code> are <code>None</code>, <code>user</code> still gets instantiated (empty but still exists, so the <code>if user:</code> test is true).</p>
  
  <p>How to would I <em>not</em> instantiate an object based on specific arguments?</p>