Class Basics

class Employee:
    def __init__(self, name, age, salary):
        self.name = name
        self.age = age
        self.salary = salary
        
    def __repr__(self):
        return repr((self.name, self.age, self.salary))
employees = [
    Employee('Peter', 21, 6),
    Employee('Kevin', 22, 4),
    Employee('Simon', 21, 8)
]
employees
[('Peter', 21, 6), ('Kevin', 22, 4), ('Simon', 21, 8)]
# sorting

sorted(employees, key = lambda e: e.salary)
[('Kevin', 22, 4), ('Peter', 21, 6), ('Simon', 21, 8)]
sorted(employees, key = lambda e: -e.salary)
[('Simon', 21, 8), ('Peter', 21, 6), ('Kevin', 22, 4)]
from operator import itemgetter, attrgetter
sorted(employees, key=attrgetter('age'))
[('Peter', 21, 6), ('Simon', 21, 8), ('Kevin', 22, 4)]
young_employees = sorted(employees, key=attrgetter('age'), reverse=False)
young_employees
[('Peter', 21, 6), ('Simon', 21, 8), ('Kevin', 22, 4)]