Python: Основы ООП

Для осознанной работы с Python нужно представлять себе, что такое объекты, классы и объектно-ориентированное программирование.
Пусть переменная user хранит всю информацию о пользователе. Там должно быть много разнородных данных, например, имя, телефон, адрес. Всё это — свойства, определяющие конкретного пользователя.
Дадим свойствам имена, и тогда в переменной user свойство name будет содержать имя пользователя, а phone — телефон. Теперь к этим свойствам можно обратиться через точечную нотацию: user.name и user.phone.
Одинаковые структуры часто требуют одинаковой обработки, и потому функции-обработчики включены в состав этих структур. Такие функции называются методы. В случае с переменной user будет удобно иметь метод show, функцию, которая выведет на экран значения свойств user.name, user.phone и user.address.
Структура, объединяющая свойства и методы, называется класс.
В биологии каждое живое существо относят к определённому классу: птицы, рыбы, земноводные. Собака Жучка — это экземпляр класса «млекопитающие».
В программировании экземпляры класса иначе называют объекты. Класс подобен чертежу автомобиля, а объект — это ваша машина, созданная по этому чертежу.
Принцип программирования, основанный на идее классов и объектов, называется «объектно-ориентированное программирование», сокращенно «ООП».
Способ, которым вы обращаетесь к свойствам и методам объекта — интерфейс. Запомните это слово: его часто спрашивают на собеседованиях.
Класс похож на бланк документа. Скажем, бланк контакта в записной книжке:
Скопировать кодPYTHON
# создаём класс Contact # здесь __init__ и self - специальные ключевые слова, # с ними разберёмся в следующем уроке class Contact: def __init__(self, name, phone, address, birthday): # функция, которая принимает аргументы name, phone, address, birthday, создаёт объект и в нём сохраняет их значения self.name = name self.phone = phone self.address = address self.birthday = birthday
Чтобы создать новый контакт, в пустой бланк вносят данные конкретного человека. Заполненный бланк — это объект, экземпляр класса.
Скопировать кодPYTHON
# cоздаём объект leo класса Contact с набором свойств: leo = Contact(name="Лев Толстой", phone="+7 (123) 456-78-90", address="Ясная Поляна", birthday="9.09.1828") # а можно так, покороче: leo = Contact("Лев Толстой", "+7 (123) 456-78-90", "Ясная Поляна", "9.09.1828")