code blocks in Python

Hung Jung Lu hungjunglu at
Mon Nov 24 01:34:39 CET 2003

hungjunglu at (Hung Jung Lu) wrote in message > 
> codeblock A:
>     x = 1
>     y = 2
> codeblock B:
>     z = x + y
>     print z
> exec A
> exec B
> This will be equivalent to writing the program:
> x = 1
> y = 2
> z = x + y
> print z

It just occurred to me a better syntax:

def A:
    x = 1
    y = 2

def B:
    z = x + y
    print z

No new keyword needed, beside, it uses the same keyword as function
definition, so the purpose of the code block is clear: it's something
that you will invoke.

A proper name for this type of meta-programming is "Linear
Meta-programming". Just like in algebra you have linear algebra and
non-linear algebra, in meta-programming you have all sorts of
non-linear ways of taking code pieces and turn them into other code
pieces, these include e.g.: (a) compiling: turning a character string
into a binary code string, (b) encryption, (c) macro/token
substitution, (d) tweaking with the internals like meta-classes, etc.
Linear meta-programming is much more modest and well-organized. It's
like sequencing DNA bands. Each statement is like a DNA nucleotide,
each codeblock is like a DNA band. You just want to sequence the
codeblocks properly, and at times replace one block with some other
block, or insert additional blocks.

I still have yet to hear any difficulties/complaints.

I refuse to believe that Python developers have NEVER considered this
extension to the language. So, what's the problem?

Hung Jung

More information about the Python-list mailing list