<?xml version="1.0" encoding="utf-8"?>
<feed xml:lang="en-us" xmlns="http://www.w3.org/2005/Atom"><title>Simon Willison's Weblog: metaclasses</title><link href="http://simonwillison.net/" rel="alternate"/><link href="http://simonwillison.net/tags/metaclasses.atom" rel="self"/><id>http://simonwillison.net/</id><updated>2008-04-12T12:54:51+00:00</updated><author><name>Simon Willison</name></author><entry><title>Multiple inheritance of newforms and modelforms</title><link href="https://simonwillison.net/2008/Apr/12/django/#atom-tag" rel="alternate"/><published>2008-04-12T12:54:51+00:00</published><updated>2008-04-12T12:54:51+00:00</updated><id>https://simonwillison.net/2008/Apr/12/django/#atom-tag</id><summary type="html">
    
&lt;p&gt;&lt;strong&gt;&lt;a href="http://www.djangosnippets.org/snippets/703/"&gt;Multiple inheritance of newforms and modelforms&lt;/a&gt;&lt;/strong&gt;&lt;/p&gt;
If you ever see “Error when calling the metaclass bases metaclass conflict: the metaclass of a derived class must be a (non-strict) subclass of the metaclasses of all its bases” when trying multiple inheritance with newforms and modelforms, here’s a scary solution I found.


    &lt;p&gt;Tags: &lt;a href="https://simonwillison.net/tags/django"&gt;django&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/inheritance"&gt;inheritance&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/metaclasses"&gt;metaclasses&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/modelforms"&gt;modelforms&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/multipleinheritance"&gt;multipleinheritance&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/newforms"&gt;newforms&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/python"&gt;python&lt;/a&gt;&lt;/p&gt;



</summary><category term="django"/><category term="inheritance"/><category term="metaclasses"/><category term="modelforms"/><category term="multipleinheritance"/><category term="newforms"/><category term="python"/></entry><entry><title>Monkeypatching idioms - elegant or ugly?</title><link href="https://simonwillison.net/2008/Jan/30/monkeypatching/#atom-tag" rel="alternate"/><published>2008-01-30T00:39:36+00:00</published><updated>2008-01-30T00:39:36+00:00</updated><id>https://simonwillison.net/2008/Jan/30/monkeypatching/#atom-tag</id><summary type="html">
    
&lt;p&gt;&lt;strong&gt;&lt;a href="http://mail.python.org/pipermail/python-dev/2008-January/076194.html"&gt;Monkeypatching idioms - elegant or ugly?&lt;/a&gt;&lt;/strong&gt;&lt;/p&gt;
Guido offers a decorator and a metaclass as syntactic sugar for monkeypatching existing Python classes.


    &lt;p&gt;Tags: &lt;a href="https://simonwillison.net/tags/decorators"&gt;decorators&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/guido-van-rossum"&gt;guido-van-rossum&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/idioms"&gt;idioms&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/metaclasses"&gt;metaclasses&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/monkeypatching"&gt;monkeypatching&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/python"&gt;python&lt;/a&gt;&lt;/p&gt;



</summary><category term="decorators"/><category term="guido-van-rossum"/><category term="idioms"/><category term="metaclasses"/><category term="monkeypatching"/><category term="python"/></entry><entry><title>Meta-classes Made Easy</title><link href="https://simonwillison.net/2006/Dec/17/metaclasses/#atom-tag" rel="alternate"/><published>2006-12-17T00:42:09+00:00</published><updated>2006-12-17T00:42:09+00:00</updated><id>https://simonwillison.net/2006/Dec/17/metaclasses/#atom-tag</id><summary type="html">
    
&lt;p&gt;&lt;strong&gt;&lt;a href="http://www.voidspace.org.uk/python/articles/metaclasses.shtml"&gt;Meta-classes Made Easy&lt;/a&gt;&lt;/strong&gt;&lt;/p&gt;
Fuzzyman introduces a metaclass factory for applying a decorator to every method of a class.


    &lt;p&gt;Tags: &lt;a href="https://simonwillison.net/tags/decorators"&gt;decorators&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/fuzzyman"&gt;fuzzyman&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/metaclasses"&gt;metaclasses&lt;/a&gt;, &lt;a href="https://simonwillison.net/tags/python"&gt;python&lt;/a&gt;&lt;/p&gt;



</summary><category term="decorators"/><category term="fuzzyman"/><category term="metaclasses"/><category term="python"/></entry></feed>