原來的問題是:有沒有辦法在Python中將代碼轉換爲字符串,反之亦然?
是否存在,因爲它們是用C聲明宣佈在Python宏的方式:
#define OBJWITHSIZE(_x) (sizeof _x)/(sizeof _x[0])
這裏就是我試圖找出:
有一種避免Python中的代碼重複的方法? 在一個程序中,我正在寫的一個部分,我有一個函數:
def replaceProgramFilesPath(filenameBr):
def getProgramFilesPath():
import os
return os.environ.get("PROGRAMFILES") + chr(92)
return filenameBr.replace("<ProgramFilesPath>",getProgramFilesPath())
在另一部分,我有這個代碼嵌入在一個字符串,稍後將
輸出到一個Python文件將自己運行:
"""
def replaceProgramFilesPath(filenameBr):
def getProgramFilesPath():
import os
return os.environ.get("PROGRAMFILES") + chr(92)
return filenameBr.replace("<ProgramFilesPath>",getProgramFilesPath())
"""
我該如何建立一個「宏」,以避免這種重複?
你的例子在Python中很像'len()'...除了'len()'更靈活。無論如何,Python有足夠的靈活性來完成你用C宏執行的大部分工作,而無需將它作爲宏來完成。例如,您可以編寫一個返回函數列表的函數。或類。或功能字典(一種做工廠的方式)。 – 2010-05-27 21:48:18
已經有一些關於這方面的討論:http://stackoverflow.com/questions/764412/python-macros-use-cases – 2010-05-27 21:51:44
將不會有宏,而圭多仍然負責 – 2010-05-27 22:17:19