我已经在python中定义了一个decorator函数,但是在使用它时会出现位置参数错误。这是我的密码:
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)
我尝试用python2.7和python3.6运行代码。两者都返回了确切的错误
wrapper
包装函数,意味着它将“原地行动”因此,如果调用
print_name("zeinab")
,则将使用wrapper("zeinab")
调用包装器wrapper
不接受"zeinab"
参数,因为您没有给它任何参数正如错误所说,包装器函数不接受任何参数。它需要接受与其包装的函数相同的参数
相关问题 更多 >
编程相关推荐