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)编写多行的方法使用过程编写过程的更好方法
您的示例未显示您将如何更改生成的函数(因为如果它们完全相同,则您不需要生成它们).所以我将展示一个函数可以返回一个新函数的不同示例.
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)