Классы

Пользоваться классами нужно тогда, когда имеется большое количество одинаковых атрибутов для разных людей/вещей/объектов.
Наглядно это поясняет следующая картинка:

In [2]:
# определение класса объектов Dog
class Dog:
    # метод для инициализации объекта внутренними данными
    def __init__(self, petname, temp):
        self.name = petname
        self.temperature = temp

    # получить состояние
    def status(self):
        print('Имя собаки: ', self.name)
        print('Температура собаки: ', self.temperature)
        pass

    # задать температуру
    def setTemperature(self, temp):
        self.temperature = temp
        pass

    # собаки могут лаять
    def bark(self):
        print('Гав!')
        pass
    pass

# создать новый объект собаки на основе класса
lassie = Dog('Lassie', 37)
lassie.status()
Имя собаки:  Lassie
Температура собаки:  37

Ещё один пример применения классов:

In [3]:
class Employee:
    def __init__(self, first, last, pay):
        self.first = first
        self.last = last
        self.pay = pay
        self.email = first + '.' + last + '@company.com'

    def fullname(self):
        """Выводим полное имя любого сотрудника, для которого передан аргумент self"""
        return '{} {}'.format(self.first, self.last)


# Первому работнику будет передан аргумент self, и затем первому работнику будут установлены все атрибуты метода init
emp_1 = Employee('Corey', 'Schafer', 50000)
emp_2 = Employee('Test', 'User', 60000)

print(emp_1.email) 
print(emp_2.email) 
Corey.Schafer@company.com
Test.User@company.com