要么将方法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 _我可以如何获得拳头高清的回报? - 这是他的问题。 –