Is there a way to convert code to a string and vice versa in Python?

Posted by Dragos Toader on Stack Overflow See other posts from Stack Overflow or by Dragos Toader
Published on 2010-05-27T21:39:15Z Indexed on 2010/05/27 23:11 UTC
Read the original article Hit count: 185

Filed under:
|
|

The original question was:

Is there a way to declare macros in Python as they are declared in C:

#define OBJWITHSIZE(_x) (sizeof _x)/(sizeof _x[0])

Here's what I'm trying to find out:

Is there a way to avoid code duplication in Python? In one part of a program I'm writing, I have a function:

def replaceProgramFilesPath(filenameBr):
  def getProgramFilesPath():
    import os
    return os.environ.get("PROGRAMFILES") + chr(92)
  return filenameBr.replace("<ProgramFilesPath>",getProgramFilesPath() )

In another part, I've got this code embedded in a string that will later be
output to a python file that will itself be run:

"""
def replaceProgramFilesPath(filenameBr):
  def getProgramFilesPath():
    import os
    return os.environ.get("PROGRAMFILES") + chr(92)
  return filenameBr.replace("<ProgramFilesPath>",getProgramFilesPath() )
"""

How can I build a "macro" that will avoid this duplication?

© Stack Overflow or respective owner

Related posts about python

Related posts about macros