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