首页 > 解决方案 > 在装饰器中列出元素作为参数(Python)

问题描述

我正在尝试解决此任务:创建一个生成随机数数组的函数,并使用装饰器对数组中的每个元素进行平方。我不知道如何将数组元素作为装饰器中的参数。

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 TypeError: unsupported operand type(s) for ** or pow(): 'NoneType' and 'int'

请问有什么想法吗?谢谢你。

标签: pythonarraysargumentsdecorator

解决方案


import random
print([i*2 for i in random.sample(range(10), 5)])

推荐阅读