
Am Montag, 29. August 2005 00:07 schrieb Christian Junker:
Hallo miteinander,
letztens hatte ich die Diskussion mit einem Kollegen welche Sprache mächtiger ist: Tcl oder Python.
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.
schau dir mal sys.settrace(func) an..
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)
Hmm, eine Sprache nach Implementierungsdetails (hier den trace Möglichkeiten) zu beurteilen, kommt mir so vor, wie ein Fahrrad nach der Anzahl der Speichen einzuordnen.. Pete _______________________________________________ python-de maillist - python-de@python.net http://python.net/mailman/listinfo/python-de