title: Python Classes without using def __init__(self)
body: <p>I am writing a series of text menus. With the class and sub class below it runs with no issues. But I am reviewing my coding and I am wondering....is it ok that I didn't use <code>def __init__(self)</code> in the classes? Should I have placed the data members in <code>def __init__(Self):</code> such as self.images = (), self.options =()? If I did that then I could not use the abc module for restrains, correct?</p>
  
  <pre><code>class BaseMenu(object):
      __metaclass__ = abc.ABCMeta
  
      @abc.abstractproperty
      def options(self):
          pass
  
      @abc.abstractproperty
      def menu_name(self):
          pass
  
      def display(self):
          header = "FooBar YO"
          term = getTerminalSize()
          #sys.stdout.write("\x1b[2J\x1b[H")
          print header.center(term, '*')
          print self.menu_name.center(term, '+')
          print "Please choose which option:"
          for i in self.options:
              print(
                  str(self.options.index(i)+1) + ") "
                  + i.__name__
              )
          value = int(raw_input("Please Choose: ")) - 1
  
          self.options[value](self)
  
  class Servers(BaseMenu):
  
      menu_name = "Servers"
      images = ()
      foo = ()
  
      def get_images(self):
          if not self.images:
              self.images = list_images.get_images()
          for img in self.images:
              print (
                  str(self.images.index(img)+1) + ") "
                  + "Name: %s\n    ID: %s" %
                  (img.name, img.id)
                  )
  
      def get_foo(self):
          if not self.foo:
              self.foo = list_list.get_list()
          for list in self.foo:
              print "Name:", list.name
              print "  ID:", list.id
              print
  
      def create_servers(self):
           create_server.create(self)
  
      options = (
          get_images,
          get_foo,
          create_servers
          )
  </code></pre>