我正在尝试运行此代码,但收到错误消息->“NameError:没有定义名称‘GenerateRandom’”
有谁能帮帮我吗?
`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
def generateRandom():
return np.random.randint(0,2**32), np.random.randint(0,2**32)
def Multi_test(self):
self.ra_result,self.rb_result= 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()`
3条答案
按热度按时间68bkxrlz1#
您必须使用关键字
self
来让您的类知道您正在使用其自身的方法。在调用函数
self.generateRandom()
时必须指定self
,还需要在创建将self作为参数的函数时指定,但由于您有一个静态方法,所以可以将其 Package 在@staticmethod
中这是您的
Mul
类的工作版本lpwwtiir2#
我不会讨论您为什么以这种方式编写代码,也不会直接谈论您的错误。您会收到此错误,因为生成随机是MUL类中的方法。要在方法中引用同一类的其他方法,应使用‘self’。另外,由于生成随机不使用self,因此添加静态方法。如果您能改进变量、方法等的命名方式,那就更好了。代码如下所示
mitkmikd3#
您尝试调用的函数本身就是一个类函数,即需要这样调用它:
编辑:您可以将生成随机()改为内部私有函数
在这种情况下,您可以轻松地访问它,但它仍然遥不可及