You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Python用装饰器对随机数生成函数返回的数组元素逐位平方

错误原因
  • 你的array_creator函数仅执行了打印操作,没有设置返回值,Python中无显式返回值的函数默认返回None,装饰器中拿到的numbers变量实际为None,自然无法执行幂运算
  • 即使函数返回了随机数列表,Python列表本身也不支持直接使用**运算符做整体幂运算,需要遍历列表中的每个元素单独计算平方
修复后的完整代码
import random

def square_them(function):
    def case(*args, **kwargs):
        numbers = function(*args, **kwargs)
        # 遍历列表每个元素做平方
        return [num ** 2 for num in numbers]
    return case

@square_them
def array_creator():
    randomlist = []
    for i in range(1, 10):
        numbers = random.randint(1, 100)
        randomlist.append(numbers)
    # 将生成的列表返回给装饰器,替换原有的print操作
    return randomlist

# 调用函数打印结果
print(array_creator())
核心修改说明
  • 给array_creator函数增加return randomlist逻辑,把生成的随机数列表传递给装饰器处理
  • 装饰器内层函数中改用列表推导式遍历所有元素做平方计算,返回处理后的新列表

内容的提问来源于stack exchange,提问作者Michal

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.01 06:45:01