我为一个烧瓶应用程序创建了一个函数来创建一个装饰器和一个函数,然后将它们写入一个文件,但是当我运行它时,它不会创建一个文件并写入它并且它不会返回任何错误。
def make_route(title):
route = "@app.route(/%s)" %(title)
def welcome():
return render_template("%s.html" %(title))
return welcome
f = open('test1.txt', 'w')
f.write(route, '/n', welcome, '/n')
f.close()
make_route('Hi')
答案 0 :(得分:3)
return
statement终止函数的执行,因此忽略它之后的任何代码。此外,write
写入字符串,而不是随机对象。你想要:
def make_route(title):
route = "@app.route(/%s)" %(title)
def welcome():
return render_template("%s.html" %(title))
with open('test1.txt', 'w') as f:
f.write('%r\n%r\n' % (route, welcome))
return welcome
make_route('Hi')
答案 1 :(得分:1)
我会使用philhag的答案,但是使用%s而不是%r,或者你要写一个字符串,你可以使用。 name 如果你想多次使用这个函数(您可能会这样做。)
def make_route(title):
route = "@app.route('/%s')" %(title)
def welcome():
return render_template("%s.html" %(title))
with open('test2.py', 'w') as f:
f.write('%s\n%s\n' % (route, welcome))
welcome.__name__ = title
return welcome
make_route('Hi')