summaryrefslogtreecommitdiff
path: root/Demo/metaclasses/Simple.py
diff options
context:
space:
mode:
authorBenjamin Peterson <benjamin@python.org>2009-05-07 19:14:14 +0000
committerBenjamin Peterson <benjamin@python.org>2009-05-07 19:14:14 +0000
commit34c044ff5b7af76c4b65c63e1923183a9957de2e (patch)
tree32152a05a05d145432cffb7147bceeb6551bdcc7 /Demo/metaclasses/Simple.py
parent993527485ebb3f8a7e8759ab480547a0b61b82eb (diff)
downloadcpython-git-34c044ff5b7af76c4b65c63e1923183a9957de2e.tar.gz
remove old metaclass demos
Diffstat (limited to 'Demo/metaclasses/Simple.py')
-rw-r--r--Demo/metaclasses/Simple.py45
1 files changed, 0 insertions, 45 deletions
diff --git a/Demo/metaclasses/Simple.py b/Demo/metaclasses/Simple.py
deleted file mode 100644
index 8878adedb4..0000000000
--- a/Demo/metaclasses/Simple.py
+++ /dev/null
@@ -1,45 +0,0 @@
-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 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())