Event

Die Zope Component Architecture (ZCA) ermöglicht, Events an bestimmte Handler zu schicken.

Events erstellen

  1. Im Folgenden erstellen wir zwei Beispielklassen, die zope.component.event für das Dispatching benötigen:

    >>> import zope.component.event
    
    >>> class Event1(object):
    ...     pass
    >>> class Event2(Event1):
    ...     pass
    
  2. Anschließend werden zwei Handler für diese Event-Klassen erstellt:

    >>> called = []
    >>> import zope.component
    >>> @zope.component.adapter(Event1)
    ... def handler1(event):
    ...     called.append(1)
    >>> @zope.component.adapter(Event2)
    ... def handler2(event):
    ...     called.append(2)
    
  3. Diese Handler werden nun registriert mit:

    >>> zope.component.provideHandler(handler1)
    >>> zope.component.provideHandler(handler2)
    
  4. Nun Überprüfen wir, ob die Handler auch tatsächlich aufgerufen wurden:

    >>> from zope.event import notify
    >>> notify(Event1())
    >>> called
    [1]
    >>> del called[:]
    >>> notify(Event2())
    >>> called.sort()
    >>> called
    [1, 2]
    

Zum Weiterlesen