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

Python代码报错NameError:name 'generateRandom'未定义,求解决

解决NameError: name 'generateRandom' is not defined错误

这个错误的核心原因是:你在Multi_test方法里直接调用generateRandom(),但它是Mul类内部的方法,Python无法在全局作用域找到它,必须明确指定调用者。

方法一:将generateRandom改为实例方法

给generateRandom添加self参数(Python实例方法的必填参数),然后通过self调用它:

import numpy as np

class Mul:
    def __init__ (self,ra_result=None,rb_result=None):
        self.ra_result = ra_result
        self.rb_result = rb_result
        
    # 添加self参数,转为实例方法
    def generateRandom(self):
        return np.random.randint(0,2**32), np.random.randint(0,2**32)
    
    def Multi_test(self):
        # 通过self调用类内方法
        self.ra_result,self.rb_result= self.generateRandom()
        print("expected_output (python) = ")
        print("ra=",self.ra_result,"rb=",self.rb_result," (ra*rb)=")
        return self.ra_result*self.rb_result
        
object = Mul()
object.Multi_test()

方法二:将generateRandom改为静态方法

如果这个方法不需要访问实例的属性,可以用@staticmethod装饰器把它转为静态方法,调用时可以用self或者类名Mul:

import numpy as np

class Mul:
    def __init__ (self,ra_result=None,rb_result=None):
        self.ra_result = ra_result
        self.rb_result = rb_result
        
    @staticmethod
    def generateRandom():
        return np.random.randint(0,2**32), np.random.randint(0,2**32)
    
    def Multi_test(self):
        # 用self调用静态方法(或直接写Mul.generateRandom())
        self.ra_result,self.rb_result= self.generateRandom()
        print("expected_output (python) = ")
        print("ra=",self.ra_result,"rb=",self.rb_result," (ra*rb)=")
        return self.ra_result*self.rb_result
        
object = Mul()
object.Multi_test()

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.13 00:55:28