编写python程序来编写python程序

Dev*_*oka 0 python procedure file python-2.7

我正在尝试编写一个程序来自动化制作tkinter窗口的过程,所以我试图使用open()函数打开一个txt文件(可能应该是.py不应该吗?)一个程序这使得窗口,我试图让它编写的代码是:

def a_procedure():
    window = Tk()
    #rest of code necessary to make a Tkinter window
Run Code Online (Sandbox Code Playgroud)

但问题是,当我使用时

open()
textfile.write("def a_procedure()"/
"window = Tk()")
Run Code Online (Sandbox Code Playgroud)

我在文本文件中得到的是:def a_procedure():window = TK()#rest of text

是否存在(a)使用open()或(b)编写多行的方法使用过程编写过程的更好方法

Jam*_*ett 5

您的示例未显示您将如何更改生成的函数(因为如果它们完全相同,则您不需要生成它们).所以我将展示一个函数可以返回一个新函数的不同示例.

def make_function(first_multiplicand):
    def multiply(second_multiplicand):
        return first_multiplicand * second_multiplicand

    return multiply
Run Code Online (Sandbox Code Playgroud)

然后你可以使函数乘以不同的数量:

doubler = make_function(2)
tripler = make_function(3)
print doubler(7), tripler(7)
Run Code Online (Sandbox Code Playgroud)

这样你就不必写出一个.py文件然后import它了(如果你不能在任何有用的地方写出文件,它有潜在的问题,并且要求你通过字符串格式化创建Python源代码,这非常难看) .

functools特别值得一看的是它值得一看functools.partial; 您可以使用它重写上面的内容,如下所示:

import functools

def make_function(first_multiplicand):
    def multiply(first, second):
        return first * second
    return functools.partial(multiply, first_multiplicand)
Run Code Online (Sandbox Code Playgroud)