我需要在下面的函数computeDifference中进行哪些修改才能在控制台中打印结果,而不是对象消息。
我知道我需要在函数中添加括号()才能在控制台中打印出结果,但是还有其他方法可以打印结果吗?
class Difference1:
def __init__(self, a):
self.__elements = a
def computeDifference(self):
self.difference = max(self.__elements)- min(self.__elements)
return self.difference
a = [5,8,9,22,2]
c = Difference1(a)
print(c.computeDifference)
答案 0 :(得分:5)
将其设为属性
class Difference1:
@property
def computeDifference(self):
...
print(c.computeDifference)
但是,我将名称更改为 difference 。属性的想法是,您不应该知道或关心该值是在那时计算还是作为对象的属性存储。参见uniform access principle。
答案 1 :(得分:2)
您可以添加一个魔术功能:
class Difference1:
...
def __str__(self):
return self.computeDifference()
...
>>> a = [5,8,9,22,2]
>>> c = Difference1(a)
>>> print(c)
20