title: Converting String into Object Python
body: <p>I've just started learning Python a couple of weeks ago, and I started writing a text-based adventure game. I'm having some trouble finding a good way to convert strings into instances of a class, other than using eval(), which I've read isn't safe. For reference, here's what I'm working with:</p>
  
  <pre><code>class Room(object):
      """Defines a class for rooms in the game."""
      def __init__(self, name, unlocked, items, description, seen):
          self.name = name
          self.unlocked = unlocked
          self.items = items
          self.description = description
          self.seen = seen
  
  
  class Item(object):
      """ Defines a class of items in rooms."""
      def __init__(self, name, actions, description):
          self.name = name
          self.actions = actions
          self.description = description
  
  
  
  def examine(input):
      if isinstance(eval(input), Room):
          print eval(input).description
      elif isinstance(eval(input), Item):
          print eval(input).description
      else:   
          print "I don't understand that."
  </code></pre>
  
  <p>If input is a string, how do I safely make it a class object and access the data attribute .description? Also, if I'm going about this in entirely the wrong way, please feel free to suggest an alternative!</p>