import types class Tracing: def __init__(self, name, bases, namespace): """Create a new class.""" self.__name__ = name self.__bases__ = bases self.__namespace__ = namespace def __call__(self): """Create a new instance.""" return Instance(self) class Instance: def __init__(self, klass): self.__klass__ = klass def __getattr__(self, name): try: value = self.__klass__.__namespace__[name] except KeyError: raise AttributeError, name if type(value) is not types.FunctionType: return value return BoundMethod(value, self) class BoundMethod: def __init__(self, function, instance): self.function = function self.instance = instance def __call__(self, *args): print "calling", self.function, "for", self.instance, "with", args return apply(self.function, (self.instance,) + args) Trace = Tracing('Trace', (), {}) class MyTracedClass(Trace): def method1(self, a): self.a = a def method2(self): return self.a aninstance = MyTracedClass() aninstance.method1(10) print aninstance.method2()
Name | Type | Size | Permission | Actions |
---|---|---|---|---|
.Enum.pyo.40009 | File | 6.03 KB | 0644 |
|
.Meta.pyo.40009 | File | 4.47 KB | 0644 |
|
.Simple.pyo.40009 | File | 2.68 KB | 0644 |
|
.Trace.pyo.40009 | File | 6.03 KB | 0644 |
|
Eiffel.py | File | 3.39 KB | 0644 |
|
Eiffel.pyc | File | 4.52 KB | 0644 |
|
Eiffel.pyo | File | 4.42 KB | 0644 |
|
Enum.py | File | 4.32 KB | 0644 |
|
Enum.pyc | File | 6.03 KB | 0644 |
|
Enum.pyo | File | 6.03 KB | 0644 |
|
Meta.py | File | 2.86 KB | 0644 |
|
Meta.pyc | File | 4.47 KB | 0644 |
|
Meta.pyo | File | 4.47 KB | 0644 |
|
Simple.py | File | 1.16 KB | 0644 |
|
Simple.pyc | File | 2.68 KB | 0644 |
|
Simple.pyo | File | 2.68 KB | 0644 |
|
Synch.py | File | 7.75 KB | 0644 |
|
Synch.pyc | File | 8.26 KB | 0644 |
|
Synch.pyo | File | 8.12 KB | 0644 |
|
Trace.py | File | 4.04 KB | 0644 |
|
Trace.pyc | File | 6.03 KB | 0644 |
|
Trace.pyo | File | 6.03 KB | 0644 |
|
index.html | File | 20.09 KB | 0644 |
|
meta-vladimir.txt | File | 11.26 KB | 0644 |
|