title: Python: deleting/removing class instances with none unique names
body: <p>for a bit of context, I am looking to create a class called peasant for a game I am making in python. These will be the workers that will have many attributes. They will be created with a name and given an ID. Since the names have a chance to not be unique the ID will be called to delete the class. I think am going about instantiation wrong should ID be creating them with the unigue ID then giving them a name?</p>
  
  <pre><code>class Peasant:
      peasantCount = 0
  
      def __init__(self, name):
          ...
          Peasant.ID += 1
          self.ID = Peasant.ID
          Peasant.peasantCount += 1
  
      def died(self, Hp):
          if Hp &lt;= 0:
          Peasant.peasantCount -=1
          del self
  </code></pre>
  
  <p>The  <code>def died</code> would be a method to kill my peasants if I can make it work, but the instance is not deleted when <code>instance.died(0)</code> is called.</p>