title: Don't create object when if condition is not met in __init__()
body: <p>I have a class that maps a database object</p>
  
  <pre><code>class MyObj:
      def __init__(self):
          ...SQL request with id as key...
          if len(rows) == 1:
              ...maps columns as my_obj attributes...
              self.exists = True
          else:
              self.exists = False
  </code></pre>
  
  <p>With such design, an object is created each time, and we check if it is present in database with .exists attribute.  </p>
  
  <pre><code>my_obj = MyObj(id=15)
  if my_obj.exists:
      ...do stuff...
  </code></pre>
  
  <p>It works.  </p>
  
  <p>But I suspect there is a cleaner way to init, and we would just have to check like that:</p>
  
  <pre><code> my_obj = MyObj(id=15)
   if my_obj:
       ...do stuff...
  </code></pre>