我正在嘗試運行此代碼,但收到錯誤訊息 --->“NameError: name 'generateRandom' is not defined”
任何人都可以幫助我嗎?
`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()`
uj5u.com熱心網友回復:
您必須使用關鍵字self讓您的班級知道您正在使用自己的方法。
您必須self在呼叫函式時指定self.generateRandom(),還需要在創建函式時指定它以 self 作為引數,但由于您有一個靜態方法,您可以將其包裝在@staticmethod
這是您班級的作業版本Mul
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.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
uj5u.com熱心網友回復:
我不打算討論您為什么以這種方式撰寫代碼并直接談論您的錯誤。您收到此錯誤是因為 generateRandom 是 Mul 類中的一個方法。要在一個方法中參考同一類的其他方法,您應該使用“self”。另外添加靜態方法,因為 generateRandom 不使用 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
@staticmethod
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= self.generateRandom()
print("expected_output (python) = ")
print("ra=",self.ra_result,"rb=",self.rb_result," (ra*rb)=")
return self.ra_result*self.rb_result
my_object = Mul()
my_object.Multi_test()
uj5u.com熱心網友回復:
您嘗試呼叫的函式本身就是一個類函式,IE 需要像這樣呼叫它:
self.generateRandom()
編輯:您可以通過將 generateRandom() 更改為
def __generateRandom(self):
...
rng = self.__generateRandom()
在這種情況下,您可以輕松訪問它,但它仍然遙不可及
轉載請註明出處,本文鏈接:https://www.uj5u.com/qukuanlian/530652.html
