title: difference between variables inside and outside of __init__() (class and instance attributes)
body: <p>Is there any difference at all between these classes besides the name?</p>
  
  <pre><code>class WithClass ():
      def __init__(self):
          self.value = "Bob"
      def my_func(self):
          print(self.value)
  
  class WithoutClass ():
      value = "Bob"
  
      def my_func(self):
          print(self.value)
  </code></pre>
  
  <p>Does it make any difference if I use or don't use the <code>__init__</code> method  for declaring the variable <code>value</code>?</p>
  
  <p>My main worry is that I'll be using it one way, when that'll cause me further problems down the road.</p>