【发布时间】:2021-06-22 20:24:40
【问题描述】:
我需要创建一个装饰器函数来装饰一个生成器函数。生成器函数产生问题 # 以作为装饰添加。装饰器需要接受一个引用函数的参数。包装器需要返回一个格式化字符串,即提示“问题#:”,其中# 将是在生成器对象上调用 next 产生的数字。
我知道我的代码不正确,但我不知道如何修复它或从这里去哪里。任何帮助将不胜感激
这是我目前拥有的:
def decorator(func):
"""decorator that constructs and saves a generator object"""
gen_object = func()
@wraps(func)
def wrapper(*args, **kwargs):
"""wrapper"""
question = func(*args, **kwargs)
input(f'Question {question} <movie character>: ')
return wrapper
【问题讨论】:
-
我不太明白你在问什么。如果你用代码证明你的意思会有所帮助
-
包装的结果也应该是生成器,还是应该是普通函数?如果它是一个生成器,它是否应该从原始生成器产生包装/修改的结果,或者究竟是什么?如果它是一个函数,它是否应该从生成器中获取所有结果,然后......究竟要做什么?为什么在你的例子中有一个
input电话? -
某种minimal reproducible example 会很有帮助。请添加一个。
标签: python generator decorator wrapper python-decorators