Объектно-ориентированное программирование (ООП) — это парадигма программирования, использующая объекты и классы для создания моделей, основанных на реальном мире. Python, благодаря своему понятному синтаксису и мощным возможностям, является отличным языком для изучения и реализации принципов ООП. В этой статье рассматриваются основы работы с классами и экземплярами в Python, ведущие вас через создание простого мини-проекта для укрепления вашего понимания.

Понимание классов и экземпляров

В сердце ООП в Python лежат классы и экземпляры. Первые служат чертежами для создания объектов (экземпляров), каждый из которых обладает своими атрибутами и поведением.

Классы: чертеж

Класс в Python определяется с использованием ключевого слова class, за которым следует имя и двоеточие. Внутри содержатся методы (функции) определяют поведение, которое могут выполнять объекты. Метод __init__ — это специальный метод, называемый конструктором, который Python вызывает, когда вы создаете новый экземпляр. Он инициализирует атрибуты объекта.

class Dog:

def __init__(self, name, age):

self.name = name

self.age = age

def sit(self):

print(f»{self.name} сейчас сидит.»)

def roll_over(self):

print(f»{self.name} перекатился!»)

Экземпляры: индивидуальные объекты

Как только у вас есть класс, вы можете создавать его экземпляры, которые являются индивидуальными объектами со своим набором атрибутов и методов. Создавая экземпляр, вы передаете аргументы конструктору для инициализации атрибутов объекта.

my_dog = Dog(‘Вилли’, 6)

ОНЛАЙН-ПРАКТИКУМ
ЗАПУСК нейросети DEEPSEEK R1 ЛОКАЛЬНО НА СВОЕМ КОМПЬЮТЕРЕ
ЧТО БУДЕТ НА ОБУЧЕНИИ?
  • ПОКАЖЕМ, КАК РАЗВЕРНУТЬ МОДЕЛЬ нейросети DEEPSEEK R1 ПРЯМО НА СВОЁМ КОМПЬЮТЕРЕ
  • Где и как применять? Потестируем модель после установки на разных задачах
  • Как дообучить модель под себя?

Работа с классами и экземплярами

Работа с классами и экземплярами включает доступ и модификацию атрибутов экземпляров и вызов их методов.

Доступ к атрибутам

Вы можете получать доступ к атрибутам экземпляра с использованием точечной нотации. Это позволяет вам видеть значения, хранящиеся в атрибутах объекта.

print(my_dog.name)

print(my_dog.age)

Модификация атрибутов

Атрибуты можно модифицировать напрямую или через методы. Прямая модификация изменяет значение атрибута напрямую, в то время как методы могут инкапсулировать сложное поведение, которое обновляет атрибуты контролируемым способом.

my_dog.age = 7 # Прямая модификация

my_dog.update_age(7) # Косвенная модификация через метод

Реализация мини-проекта: простая библиотечная система

Чтобы применить наши знания, давайте создадим мини-проект: простую библиотечную систему. Эта система позволит нам добавлять книги в библиотеку, брать их в аренду и возвращать.

Класс Book

Сначала мы определяем Book с атрибутами, такими как title, author и status, чтобы указать, доступна книга или взята в аренду.

class Book:

def __init__(self, title, author):

self.title = title

self.author = author

self.status = ‘доступна’

def check_out(self):

if self.status == ‘доступна’:

self.status = ‘в аренде’

print(f»{self.title} автора {self.author} теперь в аренде.»)

else:

print(f»{self.title} уже в аренде.»)

def return_book(self):

self.status = ‘доступна’

print(f»{self.title} была возвращена.»)

Класс Library

Далее, мы создаем Library, который управляет коллекцией книг. Он включает методы для добавления книг, аренды и возврата.

class Library:

def __init__(self):

self.books = []

def add_book(self, book):

self.books.append(book)

print(f»{book.title} добавлена в библиотеку.»)

def find_book(self, title):

for book in self.books:

if book.title == title:

return book

return None

def check_out_book(self, title):

book = self.find_book(title)

if book:

book.check_out()

def return_book(self, title):

book = self.find_book(title)

if book:

book.return_book()

Заключение

Понимание классов и экземпляров фундаментально для освоения ООП в Python. Исследуя эти концепции и применяя их на практических примерах, как наша простая библиотечная система, вы приобретаете способность моделировать сложные проблемы реального мира. Эти знания открывают дверь к продвинутому программированию на Python, делая ваш путь в разработке программного обеспечения одновременно захватывающим и наградным.

Большой практикум
ЗАМЕНИ ВСЕ НЕЙРОСЕТИ НА ОДНУ — PERPLEXITY
ПОКАЖЕМ НА КОНКРЕТНЫХ КЕЙСАХ
  • Освой нейросеть Perplexity и узнай, как пользоваться функционалом остальных ИИ в одном
  • УЧАСТВОВАТЬ ЗА 0 РУБ.
  • Расскажем, как получить подписку
Участвовать бесплатно
ОНЛАЙН-ПРАКТИКУМ
ЗАПУСК нейросети DEEPSEEK R1 ЛОКАЛЬНО НА СВОЕМ КОМПЬЮТЕРЕ
ЧТО БУДЕТ НА ОБУЧЕНИИ?
  • ПОКАЖЕМ, КАК РАЗВЕРНУТЬ МОДЕЛЬ нейросеть DEEPSEEK R1 ПРЯМО НА СВОЁМ КОМПЬЮТЕРЕ
Участвовать бесплатно