Have a look at this answer about subclassing threading.Event.
threading.Event is not a class, it's function in threading.py
def Event(*args, **kwargs):
      """A factory function that returns a new event.
      Events manage a flag that can be set to true with the set() method and reset
      to false with the clear() method. The wait() method blocks until the flag is
      true.
      """
      return _Event(*args, **kwargs)
Since this function returns _Event instance, you can subclass _Event (although it's never a good idea to import and use underscored names):
from threading import _Event
  class State(_Event):
      def __init__(self, name):
          super(Event, self).__init__()
          self.name = name
      def __repr__(self):
          return self.name + ' / ' + self.is_set()
This was changed in Python 3:
class Event:
      """Class implementing event objects.
      Events manage a flag that can be set to true with the set() method and reset
      to false with the clear() method. The wait() method blocks until the flag is
      true.  The flag is initially false.
      """