From 4737482fada222f2353b9abc9bcf14bfac49fb79 Mon Sep 17 00:00:00 2001 From: Guido van Rossum Date: Thu, 2 Aug 2007 16:48:17 +0000 Subject: Add a default __prepare__() method to 'type', so it can be called using super(). (See recent conversation on python-3000 with Talin and Phillip Eby about PEP 3115 chaining rules.) --- Lib/test/test_metaclass.py | 23 +++++++++++++++++++++++ 1 file changed, 23 insertions(+) (limited to 'Lib/test/test_metaclass.py') diff --git a/Lib/test/test_metaclass.py b/Lib/test/test_metaclass.py index 9126cf6524..abb3330328 100644 --- a/Lib/test/test_metaclass.py +++ b/Lib/test/test_metaclass.py @@ -207,6 +207,29 @@ And again, with a __prepare__ attribute. kw: [('other', 'booh')] >>> +The default metaclass must define a __prepare__() method. + + >>> type.__prepare__() + {} + >>> + +Make sure it works with subclassing. + + >>> class M(type): + ... @classmethod + ... def __prepare__(cls, *args, **kwds): + ... d = super().__prepare__(*args, **kwds) + ... d["hello"] = 42 + ... return d + ... + >>> class C(metaclass=M): + ... print(hello) + ... + 42 + >>> print(C.hello) + 42 + >>> + """ __test__ = {'doctests' : doctests} -- cgit v1.2.1