列出元素作为装饰器中的参数 (Python)
List elements as argument in decorator (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()
我遇到一个错误:
line 7, in case
return numbers ** 2
TypeError: unsupported operand type(s) for ** or pow(): 'NoneType' and 'int'
有什么想法吗?谢谢。
import random
print([i*2 for i in random.sample(range(10), 5)])
使用列表理解:
import random
def square_them(function):
def case(*args, **kwargs):
numbers = function(*args, **kwargs)
return [i ** 2 for i in numbers]
return case
@square_them
def array_creator():
randomlist = []
for i in range(1, 10):
numbers = random.randint(1, 100)
randomlist.append(numbers)
return randomlist
print(array_creator())
输出:
[2809, 3364, 400, 8100, 3025, 4096, 4, 2601, 144]
我正在尝试解决这个任务:创建一个生成随机数数组的函数,并使用装饰器对数组中的每个元素进行平方。 我不知道如何将数组元素作为装饰器中的参数。
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()
我遇到一个错误:
line 7, in case return numbers ** 2 TypeError: unsupported operand type(s) for ** or pow(): 'NoneType' and 'int'
有什么想法吗?谢谢。
import random
print([i*2 for i in random.sample(range(10), 5)])
使用列表理解:
import random
def square_them(function):
def case(*args, **kwargs):
numbers = function(*args, **kwargs)
return [i ** 2 for i in numbers]
return case
@square_them
def array_creator():
randomlist = []
for i in range(1, 10):
numbers = random.randint(1, 100)
randomlist.append(numbers)
return randomlist
print(array_creator())
输出:
[2809, 3364, 400, 8100, 3025, 4096, 4, 2601, 144]