比较python

时间:2017-05-02 19:58:57

标签: python

以下是我正在研究的更大程序的简化示例,该程序旨在从某些输入创建单个数字,然后通过说明哪个更大来比较这两个数字。在这种情况下,计算机及其所有部件都有一个数字,所有这些数字加在一起形成一个我想用于比较计算机的总数。有人可以建议最好的方法吗?

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问题,因为我确信有一个简单的解决方案我可以忽略。提前感谢您的指导。

1 个答案:

答案 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