Getting in to metaprogramming
Rafe
rafesacks at gmail.com
Tue Nov 25 06:12:18 EST 2008
On Nov 25, 5:41 pm, Aaron Brady <castiro... at gmail.com> wrote:
> On Nov 25, 4:08 am, Rafe <rafesa... at gmail.com> wrote:
>
> > Hi,
>
> > In the name of self-education can anyone share some pointers, links,
> > modules, etc that I might use to begin learning how to do some
> > "metaprogramming". That is, using code to write code (right?)
>
> > Cheers,
>
> > - Rafe
>
> Python programs can generate code for themselves.
>
> >>> for i in range( 10 ):
>
> ... d= { 'cls': i }
> ... s="""
> ... class Cls%(cls)s:
> ... def meth%(cls)s( self, arg ):
> ... print 'in meth%(cls)s, arg:', arg
> ... """% d
> ... exec( s )
> ... s= """
> ... inst%(cls)s= Cls%(cls)s()
> ... """% d
> ... exec( s )
> ...>>> inst0.meth0( "arg" )
> in meth0, arg: arg
> >>> inst1.meth1( "arg" )
> in meth1, arg: arg
> >>> inst2.meth2( "arg" )
>
> in meth2, arg: arg
>
> The 'Cls0', 'Cls1', 'Cls2' repetitiveness is taken care of with a for-
> loop.
Michele, I am thinking about python which writes python. Which makes
Aaron's post accurate to my needs. More specifically, I am considering
what it might be like to use python to build a script file which can
be executed later. Until now I planned to store info to XML and then
parse it to run later. There are good reasons that generating a script
file would be more useful for me.
Aaron, Is it really as simple as gathering strings of code? Sort of
like generating HTML or XML directly? Is there any other framework or
pattern set that is worth looking in to?
Thanks for helping me explore this.
- Rafe
More information about the Python-list
mailing list