

Basic Intro to Python Metaprogramming - nuclearsandwich
http://bitshaq.com/2011/07/14/basic-intro-to-python-meta-programming/

======
iandanforth
For me this article was written in reverse. For an intro I'd love to have had
the 'code smell' example first to establish why I might care and when I might
need this, and then dive into an example.

~~~
irahul
May be this helps [http://blip.tv/pycon-us-
videos-2009-2010-2011/pycon-2010-pyt...](http://blip.tv/pycon-us-
videos-2009-2010-2011/pycon-2010-python-metaprogramming-64-3280779)

------
endgame
Can everyone please stop shoehorning in random xkcd comics where they don't
belong?

~~~
tbh2347
At the risk of introducing another level, I will mention that these comments
are very Meta :)

------
ciupicri
_Forbidden_

 _You don't have permission to access /2011/07/14/basic-intro-to-python-meta-
programming/ on this server._

------
irahul
>>> Foo = type("Foo", (FooBase,), {'bar' : 42})

is not equivalent to what the blog post says it is to. FooBase should be
defined before running this, and the blog post's equivalent make it look like
this statement defines FooBase as well.

~~~
jackpirate
I think you neglected the line in front of it, which does define FooBase.

    
    
       1. >>> FooBase = type("FooBase", (object,), {})  
       2. >>> Foo = type("Foo", (FooBase,), {'bar' : 42})  
    

Although I am not a python expert, so you may be right... in which case, how
does line one not work?

~~~
irahul
I stand corrected - I was skimming and didn't notice. The example is correct -
I was wrong.

