Message184188
| Author |
eric.snow |
| Recipients |
docs@python, eric.snow, ncoghlan |
| Date |
2013年03月14日.20:33:34 |
| SpamBayes Score |
-1.0 |
| Marked as misclassified |
Yes |
| Message-id |
<1363293215.19.0.289288553848.issue17422@psf.upfronthosting.co.za> |
| In-reply-to |
| Content |
(related to PEP 422 and issue #17044)
The execution namespace from a class definition is passed as the third argument to the metaclass (see builtin___build_class__() in Python/bltinmodule.c). When applicable, which is almost always, the subsequent call to type.__new__() copies that namespace into a new dict which is in turn exposed via the class's __dict__.
This matters in the case where a metaclass with __prepare__() gets used (or the PEP 422 equivalent). The language reference[1] should note that the object returned by __prepare__() is copied into a new dict when the class is finally created via the metaclass.
[1] http://docs.python.org/3.4/reference/datamodel.html#customizing-class-creation |
|
History
|
|---|
| Date |
User |
Action |
Args |
| 2013年03月14日 20:33:35 | eric.snow | set | recipients:
+ eric.snow, ncoghlan, docs@python |
| 2013年03月14日 20:33:35 | eric.snow | set | messageid: <1363293215.19.0.289288553848.issue17422@psf.upfronthosting.co.za> |
| 2013年03月14日 20:33:35 | eric.snow | link | issue17422 messages |
| 2013年03月14日 20:33:34 | eric.snow | create |
|