我在 python 中定义了一个装饰器函数,但在使用它时出现位置参数错误。这是我的代码:
def my_upper_case(func):
def wrapper():
return func().upper()
return wrapper
@my_upper_case
def print_name(name):
return name
if __name__ == "__main__":
print(print_name("zeinab"))
返回的错误是:
Traceback (most recent call last):
File "test.py", line 31, in <module>
print(print_name("zeinab"))
TypeError: wrapper() takes no arguments (1 given)
我尝试用 python 2.7 和 python 3.6 运行代码。两者都返回了确切的错误。
最佳答案
如错误所述,您的包装函数不接受任何参数。它需要接受与它包装的函数相同的参数。
def wrapper(arg):
return func(arg).upper()
关于python - 在python中使用装饰器时出现位置参数错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56314885/