我在將區域變數的值從一個方法傳遞到另一個方法時遇到了問題。我沒有將它們放在建構式中,因為我希望在方法中進行一些處理
class Myclass:
def __init__(self,nbr1,nbr2):
self.nbr1 = nbr1
self.nbr2 = nbr2
def operation1(self):
nbr3 =nbr1 nbr2
return nbr3
#I would like to pass the nbr3 value in the operation2 function
# for some treatments
def operation2(self):
nbr4= nbr3*2
return nbr4, nbr3
#and return value of def operation2 in showMe function
def showMe(self,param):
showresult = param()
print(f'this a result : {showresult[0]} and another result {showresult[1]}')
nbr1 = 5
nbr2 = 7
result = Myclass(nbr1,nbr2)
result.showMe(result.operation2)
但我有一個錯誤 nbr3 is not defined
感謝幫助
uj5u.com熱心網友回復:
您實際上需要在operation1()某個地方打電話
def operation2(self):
nbr3 = self.operation1()
nbr3 *= 2
return nbr4, nbr3
或者設定實體變數
def operation1(self):
self.nbr3 = self.nbr1 self.nbr2
def operation2(self):
nbr4 = self.nbr3 * 2
return nbr4, self.nbr3
...
result = Myclass(nbr1,nbr2)
result.operation1()
result.showMe(result.operation2)
或者洗掉operation1并設定實體變數
class Myclass:
def __init__(self,nbr1,nbr2):
self.nbr1 = nbr1
self.nbr2 = nbr2
self.nbr3 = self.nbr1 self.nbr2
def operation2(self):
nbr4= self.nbr3 * 2
return nbr4, nbr3
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/496382.html
