以下是我正在研究的更大程序的简化示例,该程序旨在从某些输入创建单个数字,然后通过说明哪个更大来比较这两个数字。在这种情况下,计算机及其所有部件都有一个数字,所有这些数字加在一起形成一个我想用于比较计算机的总数。有人可以建议最好的方法吗?
class compcomputer:
def __init__(self,cpu,ram,graph):
self.cpu = cpu
self.ram = ram
self.graph = graph
def __int__(self, other):
number = (int(0.4*self.cpu) + 0.2*int(self.ram) + 0.2*int(self.graph))
return number
computer1 = compcomputer(2,3,1)
computer2 = compcomputer(7,3,3)
我正在寻找一种方法来比较计算机1和计算机2的结果数量,以确定哪个更大。请注意noob问题,因为我确信有一个简单的解决方案我可以忽略。提前感谢您的指导。
答案 0 :(得分:2)
我建议在您的类中添加 gt 和 lt 方法,该类对您生成的实例变量进行操作。像这样:
class CompComputer:
def __init__(self,cpu,ram,graph):
self.cpu = cpu
self.ram = ram
self.graph = graph
self.score = self.generate_score()
def generate_score(self):
number = (int(0.4 *self.cpu) + 0.2 * int(self.ram) + 0.2 * int(self.graph))
return number
def __gt__(self, other):
return self.score > other.score
def __lt__(self, other):
return self.score < other.score
computer1 = CompComputer(2,3,1)
computer2 = CompComputer(7,3,3)
print(computer1 > computer2)
print(computer1 < computer2)
您可以在此处阅读这些方法:https://docs.python.org/3/reference/datamodel.html