我尝试在Python中测试decorators的实用性。当我写以下代码时,有一个错误:
TypeError: fizz_buzz_or_number() takes 1 positional argument but 2 were given
我首先将函数log_calls(fn)
定义为
之后,我使用log_调用将另一个函数修饰为:
@log_calls
def fizz_buzz_or_number(i):
''' Return "fizz" if i is divisible by 3, "buzz" if by
5, and "fizzbuzz" if both; otherwise, return i. '''
if i % 15 == 0:
return 'fizzbuzz'
elif i % 3 == 0:
return 'fizz'
elif i % 5 == 0:
return 'buzz'
else:
return i
当我运行以下代码时
for i in range(1, 31):
print(fizz_buzz_or_number(i))
错误TypeError: fizz_buzz_or_number() takes 1 positional argument but 2 were given
出现。在
我不知道这个装潢工出了什么毛病,怎么修理。在
您将在此处向修饰函数传入2个参数:
如果您想应用}:
^{pr2}$args
元组和kwargs
字典作为变量参数,则应重复函数签名语法,因此再次使用*
和{参见Call expressions reference documentation:
相关问题 更多 >
编程相关推荐