【发布时间】:2021-11-26 08:00:36
【问题描述】:
我正在尝试解决这个任务:创建一个生成随机数数组的函数,并使用装饰器对数组中的每个元素进行平方。 我不知道如何将数组元素作为装饰器中的参数。
import random
def square_them(function):
def case(*args, **kwargs):
numbers = function(*args, **kwargs)
return numbers ** 2
return case
@square_them
def array_creator():
randomlist = []
for i in range(1, 10):
numbers = random.randint(1, 100)
randomlist.append(numbers)
print(randomlist)
array_creator()
我收到一个错误:
第 7 行,以防万一 返回数字** 2 类型错误:** 或 pow() 不支持的操作数类型:'NoneType' 和 'int'
有什么想法吗?谢谢。
【问题讨论】:
-
请参阅How to Ask 和help center。你到底在问什么?您是否遇到错误?出乎意料的输出?如果是这样,究竟是什么错误?什么是出乎意料的输出,你期待什么?
-
请把它归结为minimal reproducible example。如果您遇到错误,请生成一个演示该错误的示例,并删除不相关的详细信息。几乎可以肯定,您使用装饰器这一事实完全无关紧要。请理解,这不是调试服务或辅导服务。
-
至于“我不知道如何将数组元素作为装饰器中的参数。”好吧, list 已成功作为参数传递给装饰器中的包装函数。那不是问题。再次,请回来minimal reproducible example
-
注意,你的
array_creator函数返回None -
#juanpa.arrivillaga 非常感谢您的所有 cmets。我尽力了,对不起。我是新来的,也是 Python 的初学者。我看到该函数返回 None,但不知道如何避免这种情况。
标签: python arrays arguments decorator