Hacktoberfest 2026: die Issues, die Maintainer für den Oktober markiert haben – offen und einsteigerfreundlich. Hacktoberfest-Issues durchsuchen

execution order of trait observers

Offen
#874 2 Kommentare 0 Reaktionen 0 zugewiesene Personen Auf GitHub ansehen

Dieses Issue hat noch niemand übernommen.

Bewertung

Schwierigkeit
4/5
Geschätzter Aufwand
3-5 Tage
Anfängerfreundlichkeit
25/100
Issue-Typ
Dokumentation
Klarheit
Muss geklärt werden
Aktivitätsstatus
Veraltet
Tech-Stack
python
Bereich
documentation

Rechercherichtung

Beginne mit dem Test-Beispiel und seinen tr.observe-Handlern. Untersuche anschließend, wie die Trait-Initialisierung die Keyword-Argumente verarbeitet und Observer dispatcht. Fertig ist die Untersuchung, wenn die tatsächliche Regel für die Ausführungsreihenfolge dokumentiert ist und erklärt wird, warum beide Argumentreihenfolgen die gezeigte Ausgabe erzeugen.

Vom Indexierungsmodell aus dem Issue-Text verfasst.

Beschreibung

its not clear to me in what order the trait observers get executed and why?
can anyone shed light on this?

class Test(tr.HasTraits):
    a = tr.Bool(default_value=True)
    b = tr.Bool(default_value=True)
    c = tr.Bool(default_value=True)

    @tr.observe("a")
    def _a(self, on_change):
        print(f"a = {self.a}")

    @tr.observe("b")
    def _b(self, on_change):
        print(f"b = {self.b}")

    @tr.observe("c")
    def _c(self, on_change):
        print(f"c = {self.c}")

    def __init__(self, **kwargs):
        super().__init__(**kwargs)


t1 = Test(a=False, b=False, c=False)
print("---")
t2 = Test(c=False, b=False, a=False)

# b = False
# c = False
# a = False
# ---
# b = False
# c = False
# a = False

many thanks

Vorherrschende Sprache
Python
Sterne
653
Forks
217
Ø Merge
2 T. 21 Std.
Gemergte PRs (30 T.)
2

Beitragsleitfaden

Beitragsleitfaden öffnen

Erste Schritte

  1. Lesen Sie das ganze Issue und danach den Beitragsleitfaden des Projekts.
  2. Schreiben Sie ins Issue, dass Sie es übernehmen — das erspart doppelte Arbeit.
  3. Forken Sie das Repository und arbeiten Sie in einem Branch.
  4. Öffnen Sie einen Pull Request, der die Issue-Nummer nennt.

Mehr aus ipython/traitlets

Alle Issues in ipython/traitlets

Ähnliche Issues

Weitere Issues zu Python

Neue Issues direkt in Ihr Postfach

Eine kurze Übersicht über anfängerfreundliche GitHub-Issues.