
Hi Stefan, Am 11.09.05 schrieb Stefan Schwarzer <sschwarzer@sschwarzer.net>:
[...] es ist immerhin möglich, __getattr__/__setattr__ für eine Klasse zu definieren und diese bzw. Instanzen davon in sys.modules einzubinden (siehe Rezept von Alex Martelli: http://aspn.activestate.com/ASPN/Cookbook/Python/Recipe/65207 ). Deiner Frage nach suchst du nach einer Verallgemeinerung von Alex's Rezept.
danke vielmals, mit Hilfe dieses Beispiels habe ich mal ein kleines Code Snippet geschrieben, dass mir zumindest bei Modulattributen - u. a. Variablen, die an ein Modul gebunden sind - etwas ähnliches wie das Tcl trace erlaubt. Das folgende könnte in einer trace.py stehen: <code> class _Trace: _vars = {} def __setattr__(self,name,val): #here: call some global function to keep track of write-access to a variable self.__class__._vars[name] = val def __getattr__(self, name): #here: call some global function to keep track of read-access to a variable return self.__class__._vars.get(name, None) import sys sys.modules[__name__]= _Trace() </code> 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.... -- Best Regards Christian Junker _______________________________________________ python-de maillist - python-de@python.net http://python.net/mailman/listinfo/python-de