Da ich Tcl zuvor nur vom Hörensagen kannte, und nichts weiter wusste als dass in Tcl alle Variablen Strings sind, war ich sehr überrascht als dieser mir zeigte wie elegant manche Dinge gemacht werden konnten. Jedenfalls fand ich den Tcl 'trace' Befehl unglaublich bemerkenswert, der es u.a. möglich macht das Verhalten einer Variablen in bestimmten Situationen komplett zu steuern, und zwar indirekt. Man kann z.B. eine Funktion schreiben die immer dann ausgeführt wird, wenn diese eine Variable (die vorher natürlich bekannt sein muss, also zuvor definiert sein muss) irgendwo eingelesen wird.
D.h. muss ein Statement die Variable x - oder besser deren Value - lesen, so wird direkt vor dieser Operation die mit trace registrierte selbst geschriebene Funktion aufgerufen, die dann z.B. eine Warnung nach stdout ausspucken kann.
Ein Vergleichsfeature in Python fiel mir daraufhin nicht ein, ich hatte nur die spezielle Methode __getattr__ im Kopf und den property(...) Mechanismus, aber das Problem bei ihnen ist, dass sie 1.) nicht eine bestimmte Variable unter die Lupe nehmen können und 2.) nur für Attribute einer Klasse gelten.
Gibt es überhaupt soetwas in Python und wenn ja wie heißt die Funktion dazu? (ich hoffe, ich habe nichts offensichtliches übersehen)
nicht das ich wuesste. Ob dieses Feature aber die Frage nach der Sprachueberlegenheit beantwortet - das halte ich doch fuer uebetrieben. AFAIK kennt TCL keine Objekte, der Verzicht auf starke typisierung ist auch ein Manko, und zB mehrdimensionale dicts lassen sich nur ueber composite-keys machen - also zb "1x2", als string! Echte listen gibt's auch nicht, sondern eben dicts die mit Zahlen indiziert sind... usw. Alles in allem doch eine deutlich primitivere Sprache. MfG Diez _______________________________________________ python-de maillist - python-de@python.net http://python.net/mailman/listinfo/python-de