要麼將方法coqueta()
的返回值轉換爲otro_perro()
,要麼將otro_perro()
直接調用coqueta()
。您的代碼表明,你希望做的第一,所以這樣寫:
class Perro:
def coqueta(self, num1, num2):
result = big_maths_calculation(num1, num2)
return result
def otro_perro(self, coqueta):
print coqueta
mascota = Perro()
ejemplo = mascota.coqueta(5, 5)
mascota.otro_perro(ejemplo)
或者,你可以調用coqueta()
從otro_perro()
:
def otro_perro(self, num1, num2):
print self.coqueta(num1, num2)
但需要你傳遞值num1
和num2
分成otro_perro()
。
也許num1
和num2
可能被認爲是屬於Perro
類的屬性?
class Perro:
def __init__(self, num1, num2):
self.num1 = num1
self.num2 = num2
def coqueta(self):
result = big_maths_calculation(self.num1, self.num2)
return result
def otro_perro(self, coqueta):
print self.coqueta() # N.B. method call
或者另一種可能是緩存的「大計算」的結果:
class Perro:
def __init__(self, num1, num2):
self.num1 = num1
self.num2 = num2
self.result = None
def coqueta(self):
if self.result is None:
self.result = big_maths_calculation(self.num1, self.num2)
return self.result
def otro_perro(self, coqueta):
print self.coqueta() # N.B. method call
現在只需執行一次昂貴的計算在這種情況下,當你創建類,你可以指定它們需要時將其結果存儲起來供以後使用,而無需重新計算。
您能否澄清您的問題?你想實現什麼?代碼中還有一些可能的錯誤:例如,方法'otro_perro'中的參考'otro_perro'(作爲回報)未被初始化,並且與方法調用'self.otro_perro'不同,這會導致無限遞歸。 –
@ M.Wymann _我可以如何獲得拳頭高清的回報? - 這是他的問題。 –