Eventbasierte Kommunikation
Project description
Iris – Verwaltung von Events
Event
__init__
: Konstruktor, der eine beliebige Anzahl an Funktionspointern nimmt, die ans Event gebunden werden.
add_function
: Bindet neue Funktionen an das Event.
remove_function
: Entbindet Funktionen vom Event.
emit
: Löst das Event aus und ruft alle Funktionen nacheinaner auf mit den dieser Funktion gegebenen Argumenten auf.
__iadd__
: Selbe Funktion wie add_function
__isub__
: Selbe Funktion wie remove_function
__call__
: Selbe Funktion wie emit
__repr_
: Representationsstring des Events mit den gebundenen Funktionen.
function
: Property-Attribut, das die Liste der gebundenen Funktionen liefert zur einfachen Manipulation.
Handler
__init__
: Konstruktor, der den Handler initialisiert.
get_event_names
: Liefert die Namen aller erstellten Events.
remove
: Löscht das Event mit dem gegebenem Namen.
__repr__
: Representationsstring mit den Namen der Events
Möglichkeiten ein neues Event zu erstellen mit:
- Dem Namen des Events
- Den zu bindenen Funktionen
new
__setitem__
Möglichkeiten ein Event zu löschen:
remove
__delitem__
__delattr__
Möglichkeiten ein Event von seinem Namen her zu erhalten:
__getitem__
__getattr__
StaticHandler
Basisklasse, von der verschiedene Handler abgeleitet werden können, deren Attribute als Events aufgefasst werden.
Syntax mit Typvorgabe:
class Irgendwas(StaticHandler):
EVENT_1: Event
EVENT_2: Event
Syntax mit None-Wert
class Irgendwas(StaticHandler):
EVENT_1 = None
EVENT_2 = None
Syntax mit Typ und None
class Irgendwas(StaticHandler):
EVENT_1: Event = None
EVENT_2: EVENT = None
Statt None
kann auch Event()
verwendet werden.
Das macht allerdings keinen Unterschied.
Auslösen eines Events
handler = Irgendwas()
handler.EVENT_1.add_function(print)
handler.EVENT_1.emit("Test")
RecursiveHandler
Ein Dekorator, um eine Klasse dem Aufnehmen eines weiteren Handlers zu befähigen.
Exceptions
Ein Auftreten der Exception AttributeError
kann bedeuten, dass der Dekorator vergessen worden ist.
Syntax
@RecursiveHandler
class A(StaticHandler):
a1: Event
@RecursiveHandler
class B(StaticHandler):
b1: Event
class C(StaticHandler):
c1: Event
Event erreichen
a = A()
print(a.a1)
print(a.B.b1)
print(a.B.C.c1)
Die definierten Events können so angesprochen werden.
Project details
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Hashes for Iris_heureka_code-1.1.1-py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | fe069ac1866f5ee152d8016ea2f801141476c83eff6efd3dd6c78c44d8a277f8 |
|
MD5 | 377a0a708eef9e533a85f0635011a515 |
|
BLAKE2b-256 | f13866fa7408629d85aba67939e80388b18759dbee8302fb7fc132f39544492e |