X7ROOT File Manager
Current Path:
/lib64/python2.7/Demo/metaclasses
lib64
/
python2.7
/
Demo
/
metaclasses
/
??
..
??
Eiffel.py
(3.39 KB)
??
Eiffel.pyc
(4.52 KB)
??
Eiffel.pyo
(4.42 KB)
??
Enum.py
(4.32 KB)
??
Enum.pyc
(6.03 KB)
??
Enum.pyo
(6.03 KB)
??
Meta.py
(2.86 KB)
??
Meta.pyc
(4.47 KB)
??
Meta.pyo
(4.47 KB)
??
Simple.py
(1.16 KB)
??
Simple.pyc
(2.68 KB)
??
Simple.pyo
(2.68 KB)
??
Synch.py
(7.75 KB)
??
Synch.pyc
(8.26 KB)
??
Synch.pyo
(8.12 KB)
??
Trace.py
(4.04 KB)
??
Trace.pyc
(6.03 KB)
??
Trace.pyo
(6.03 KB)
??
index.html
(20.09 KB)
??
meta-vladimir.txt
(11.26 KB)
Editing: Simple.py
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()
Upload File
Create Folder