gh-62534: Document that three-argument type() does not call __prepare__ (GH-154028)
encukou <[email protected]>
| Newsgroups | gmane.comp.python.cvs |
|---|---|
| Message-ID | <[email protected]> |
https://github.com/python/cpython/commit/5625b187ab528e10dcaa21726a7c95b110d97190 commit: 5625b187ab528e10dcaa21726a7c95b110d97190 branch: main author: soreavis <[email protected]> committer: encukou <[email protected]> date: 2026-07-19T17:31:59+02:00 summary: gh-62534: Document that three-argument type() does not call __prepare__ (GH-154028) The three-argument form of type() skips the metaclass __prepare__ method, which is called by the class statement machinery rather than by the metaclass call itself. Say so in the type() entry and point to types.new_class() for dynamic class creation with the appropriate metaclass, as directed in the issue thread. files: M Doc/library/functions.rst diff --git a/Doc/library/functions.rst b/Doc/library/functions.rst index 8dbebf7048b583..f45ab397e93693 100644 --- a/Doc/library/functions.rst +++ b/Doc/library/functions.rst @@ -2179,6 +2179,11 @@ are always available. They are listed here in alphabetical order. in the same way that keywords in a class definition (besides *metaclass*) would. + Unlike a :keyword:`class` statement, the three argument form does not + call the metaclass ``__prepare__`` method (see :ref:`prepare`). Use + :func:`types.new_class` to dynamically create a class using the + appropriate metaclass. + See also :ref:`class-customization`. .. versionchanged:: 3.6 _______________________________________________ Python-checkins mailing list -- [email protected] To unsubscribe send an email to [email protected] https://mail.python.org/mailman3//lists/python-checkins.python.org Member address: [email protected]