Regarding adding macros to Python, the new language Julia, which is fairly Python-like in appearance, has them: http://julialang.org/
Like Lisp, Julia is completely homoiconic. Zach Allaun at Hacker School, formerly a Clojure guy, has been doing lots of cool stuff with its macros, like this one to make tail-call optimization available (not natively a feature of Julia): http://blog.zachallaun.com/post/jumping-julia
The infix syntax serves to make Julia macros a bit uglier and more complex than Lisp ones, but they still provide the same power.
Like Lisp, Julia is completely homoiconic. Zach Allaun at Hacker School, formerly a Clojure guy, has been doing lots of cool stuff with its macros, like this one to make tail-call optimization available (not natively a feature of Julia): http://blog.zachallaun.com/post/jumping-julia
The infix syntax serves to make Julia macros a bit uglier and more complex than Lisp ones, but they still provide the same power.
Edit: Here's a link to the Julia docs on metaprogramming: http://docs.julialang.org/en/latest/manual/metaprogramming/