[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