【发布时间】:2026-02-01 06:25:02
【问题描述】:
装饰器应该像
@log_message
def a_function_that_returns_a_string():
return "a string"
@log_message
def a_function_that_returns_a_strings_with_a_newline(s):
return "{}\n".format(s)
我的实现是这样的,但没有在文件中写入任何内容,我是装饰器的新手
def log_message(func):
def wrapper(*args, **kwargs):
result = func(a)
with open('test.txt', 'w') as f:
for row in results:
f.write("%s\n" % str(row))
return result
return wrapper
【问题讨论】:
-
看来你刚刚复制了你得到的任务,现在正在分配给我们......
-
@mrCarnivore 我不明白装饰器的逻辑你能告诉我哪里错了
-
记得以追加模式打开文件。否则,之前的结果将会丢失。 (这是作业吗?Python中有一个记录器模块,专为做你想做的事而设计......)
-
最后,
for row in results需要一个迭代器。您确定您的退货类型吗?尝试看看如何改进。
标签: python python-2.7 python-decorators