Python 装潢师不';识别功能

Python 装潢师不';识别功能,python,Python,我使用Flask.route()decorator已经有一段时间了,我想自己编写一个,但它总是告诉我函数没有传递给它 我完全复制了烧瓶示例中的所有内容,因此我的装饰器定义肯定是错误的: def decorator(f,*d_参数): def函数(*args,**kwargs): 打印('我被装饰') 返回f(*args,**kwargs) 返回函数 @装饰师() def测试(a,b=1): 打印('测试',a,b) 测试(1,6) 我得到的错误是: Traceback (most recent

我使用Flask.route()decorator已经有一段时间了,我想自己编写一个,但它总是告诉我函数没有传递给它

我完全复制了烧瓶示例中的所有内容,因此我的装饰器定义肯定是错误的:

def decorator(f,*d_参数):
def函数(*args,**kwargs):
打印('我被装饰')
返回f(*args,**kwargs)
返回函数
@装饰师()
def测试(a,b=1):
打印('测试',a,b)
测试(1,6)
我得到的错误是:

Traceback (most recent call last):
  File "C:/Users/Tobi/Desktop/decorators.py", line 49, in <module>
    @decorator()
TypeError: decorator() missing 1 required positional argument: 'f'
回溯(最近一次呼叫最后一次):
文件“C:/Users/Tobi/Desktop/decorators.py”,第49行,在
@装饰师()
TypeError:decorator()缺少1个必需的位置参数:“f”

首先,关于如何处理此问题,存在一些问题。在写新问题之前,你应该对这个错误做更多的研究。但无论如何:

出现错误的原因是,您通过在
def
之前写入decorator来调用decorator,因为您已经使用括号
decorator()
调用了decorator(),但没有传入任何内容,因此它会抛出错误

对于您的装饰师,正确的用法是:

@decorator#这里没有括号
def函数()
...

丢失
()
decorator()
正在执行
decorator
函数,显然没有参数。应该给你指出正确的方向谢谢,对于初学者来说,装饰师是相当令人困惑的:D