[Python-de] Einklinken beim Zugriff auf eine bestimmte Variable
Diez B. Roggisch
deets at web.de
Mit Sep 21 10:32:13 CEST 2005
>
> Da kann man sicherlich noch sehr viel verbessern, aber zumindest
> erfüllt es den Zweck *teilweise*: Eine vergleichbare Tcl trace
> Funktionalität in purem Python.
> Die Einschränkung, dass es nur für Variablen in einem bestimmten Modul
> gilt (hier das Modul mit dem Namen "trace"), ist wahrscheinlich auch
> noch zu lösen....
Wesentlich einfacher und besser wäre es den TCL-Knoten in deinem Kopf zu
lösen - dann brauchst du das nicht mehr :)
Jede Sprache hat so ihre idiome, und man gewöhnt sich schnell daran und
glaubt sie nicht mehr missen zu können - aber es ist immer ein Fehler,
andere Idiome mit gewalt in eine andere Sprache zu zerren....
Was du erreicht hast ist ja letztlich auch keine
Modul-Leve-Unterstützung (das geht nicht, ich hatte auch mal
vorgeschlagen __setattr__/__getattr__ auf Modullevel einzuführen),
sondern ein reines Namensraumspielchen. Womit nicht wirklich was
gewonnen wäre - denn statt deines komplexen Ansatzes kann man ja auch
einfach
name = module.Trace()
machen und eben alles über name.* aufrufen. Nur innerhalb eines Moduls
selber wäre das interessant - aber genau da versagt auch dein Trick.
MfG Diez