From 7e1ff69271413a61c69edb24de214895cdaa1fec Mon Sep 17 00:00:00 2001 From: Guido van Rossum Date: Fri, 17 Aug 2001 11:55:58 +0000 Subject: Add early binding of methods to the 2nd metaclass example. --- Lib/test/test_descr.py | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/Lib/test/test_descr.py b/Lib/test/test_descr.py index 247a4c4..a26a1e2 100644 --- a/Lib/test/test_descr.py +++ b/Lib/test/test_descr.py @@ -404,7 +404,11 @@ def metaclass(): __new__ = staticmethod(__new__) def __call__(self): it = _instance() - # XXX Should do more, but that doesn't work yet + # Early binding of methods + for key in self.dict: + if key.startswith("__"): + continue + setattr(it, key, self.dict[key].__get__(it, self)) return it class C: __metaclass__ = M2 @@ -414,6 +418,7 @@ def metaclass(): verify(C.bases == ()) verify('spam' in C.dict) c = C() + verify(c.spam() == 42) def pymods(): if verbose: print "Testing Python subclass of module..." -- cgit v0.12