Equality/relationship methods

There are six equality/relationship methods. They represent what happens if an object is compared using any of the following symbols:

Function Corresponding symbol and meaning
object.__lt__(self, other)  <, smaller
object.__le__(self, other) <=, smaller or equal
object.__eq__(self, other) ==, equal
object.__ne__(self, other) !=, not equal
object.__gt__(self, other) >, larger
object.__ge__(self, other) >=, larger or equal

 

Let's illustrate this function with an example based on our prior case—a Person class. We'll add a function that will allow us to sort characters by their age:

class Person:
'''person entity'''

def __init__(self, name, surname, age):
self.name = name
self.surname = surname
self.age = age

def __repr__(self):
return f'Person(name={self.name}, surname={self.surname}, age={self.age})'

def __lt__(self, other):
return self.age < other.age

Now, let's use the same characters:

data = [
{'name':"Pippi", 'surname':'Longstocking', 'age':11},
{'name':"Kalle", 'surname':'Blomkvist', 'age':10},
{'name':'Karlsson', 'surname': 'on-the-Roof', 'age':12}
]

characters = [Person(**row) for row in data]

Finally, we'll sort our characters. Under the hood, the sorting function uses the smaller method:

>>> sorted(characters)
[Person(name=Kalle, surname=Blomkvist, age=10),
Person(name=Pippi, surname=Longstocking, age=11),
Person(name=Karlsson, surname=on-the-Roof, age=12)]
..................Content has been hidden....................

You can't read the all page of ebook, please click here login for view all page.
Reset
3.138.124.143