我已经开始了一个新项目,我想创建一个函数,我们将其命名为foo,它会记住之前对其进行的调用。
因此,如果函数应该返回最后使用的参数,我们应该这样:
print(foo(2), foo(7), foo('a'))
打印出:
None 2 7
问题
我们如何创建一个装饰器函数,例如调用bar它打印给定的参数,除非前一个函数调用与前一个相同,在这种情况下,该函数不打印任何内容,只是返回 None 。
我设法做了什么?
到目前为止,我已经能够创建该函数的框架,如下所示:
@bar
def printer(*args):
print(*args)
在 bar 函数中,我应该以某种方式检查之前的调用,但我不知道如何!我不想使用全局变量或其他东西,而只想使用函数。bar我假设我需要对and函数使用闭包foo。你能告诉我如何实施它们吗?
注意 ,这些调用应该发生以下情况:
printer("a") # prints a
printer("a") # only returns None
printer("a") # only returns None
printer("b") # prints b
printer("a") # prints a
有只小跳蛙
相关分类