Modules -> OOP -> Methods -> Comparing objects

Comparing objects


Related code
class Dog:
    """Represents a dog.

    attributes: name: str, age: int, energy: int
    """

    def print(self):
        print(f'Name: {self.name}, Age: {self.age}')

    def set_info(self, name, age, energy):
        self.name = name
        self.age = age
        self.energy = energy

    def play(self, hours):
        self.energy -= hours * 10

    def sleep(self, hours):
        self.energy += hours * 10

murki = Dog()
murki.set_info("Murki", 2, 50)

reksi = Dog()
reksi.set_info("Reksi", 1, 50)

class Dog:
    ...

    def is_older(dog1, dog2):
        return dog1.age > dog2.age
...

is_older takes two dogs, dog1 and dog2 and returns True if dog1's age is greater than dog2's age.

is_older, unlike other methods we've seen so far, takes two Dog instances. We've already mentioned that, by convention, the first one is named self. By the same convention, if the second argument is an instance of the class, it is named other:

class Dog:
    ...
    def is_older(self, other):
        return self.age > other.age
...
>>> murki.is_older(reksi)
True