4 def __init__(self
, name
, bases
, namespace
):
5 """Create a new class."""
8 self
.__namespace
__ = namespace
10 """Create a new instance."""
14 def __init__(self
, klass
):
15 self
.__klass
__ = klass
16 def __getattr__(self
, name
):
18 value
= self
.__klass
__.__namespace
__[name
]
20 raise AttributeError, name
21 if type(value
) is not types
.FunctionType
:
23 return BoundMethod(value
, self
)
26 def __init__(self
, function
, instance
):
27 self
.function
= function
28 self
.instance
= instance
29 def __call__(self
, *args
):
30 print "calling", self
.function
, "for", self
.instance
, "with", args
31 return apply(self
.function
, (self
.instance
,) + args
)
33 Trace
= Tracing('Trace', (), {})
35 class MyTracedClass(Trace
):
41 aninstance
= MyTracedClass()
43 aninstance
.method1(10)
45 print aninstance
.method2()