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

如何将第一个方法的结果传递给第二个?解决NameError报错

问题分析与解决方案

首先,咱们先搞清楚你遇到的NameError是怎么回事:这跟列表返回None没关系,核心问题是Display_Details2方法里的value变量根本没被定义——它没法直接访问Display_Details1里的局部变量value,这两个方法的局部变量是相互独立的。

另外看你的代码,还有几个小问题:

  • print(self.generate)和print(self.sort)这两行明显是写错了,应该是调用你定义的方法(比如self.Display_Details1()),而且这两行的缩进也不对,应该放在方法外面或者合适的调用位置。
  • Display_Details2没有接收要排序的数组参数,直接调用value.sort()自然会找不到变量。

修正后的代码示例

import random
from random import seed

class YourClassName:  # 你应该有一个类,因为方法用了self参数
    def Display_Details1(self):
        value = []
        num1 = int(input("Select array size: "))
        seed(0)
        for i in range(num1):
            value.append(random.randint(1, 99))
        print("生成的随机数组:", value)
        return value

    def Display_Details2(self, arr):  # 添加参数接收要排序的数组
        sorted_arr = arr.copy()  # 可选:如果不想修改原数组,就复制一份再排序
        sorted_arr.sort()
        return sorted_arr

# 实例化类并调用方法
if __name__ == "__main__":
    obj = YourClassName()
    generated_array = obj.Display_Details1()  # 接收Display_Details1返回的数组
    sorted_array = obj.Display_Details2(generated_array)  # 把数组传给排序方法
    print("排序后的数组:", sorted_array)

关键改动说明

  • 给Display_Details2添加了arr参数,让它可以接收外部传入的数组,这样就不用依赖未定义的变量了。
  • 调用方法时,先把Display_Details1的返回值存在generated_array里,再把这个变量传给Display_Details2。
  • 可选的arr.copy()是为了避免排序修改原数组,如果不需要保留原数组,直接arr.sort()然后返回arr也可以。
  • 修正了方法调用的写法,把错误的print(self.generate)改成了正确的方法调用流程。

这样修改后,就不会再出现NameError了,而且能正确完成“生成数组→排序数组”的流程。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.06 11:52:48