СДЕЛАЙТЕ СВОИ УРОКИ ЕЩЁ ЭФФЕКТИВНЕЕ, А ЖИЗНЬ СВОБОДНЕЕ

Благодаря готовым учебным материалам для работы в классе и дистанционно

Скидки до 50 % на комплекты
только до

Готовые ключевые этапы урока всегда будут у вас под рукой

Организационный момент

Проверка знаний

Объяснение материала

Закрепление изученного

Итоги урока

Методическая разработка «Введение в ООП на Python. Основные принципы»

Категория: Информатика

Нажмите, чтобы узнать подробности

Просмотр содержимого документа
«Методическая разработка «Введение в ООП на Python. Основные принципы»»

МУНИЦИПАЛЬНОЕ АВТОНОМНОЕ ОБРАЗОВАТЕЛЬНОЕ УЧРЕЖДЕНИЕ ДОПОЛНИТЕЛЬНОГО ОБРАЗОВАНИЯ

«ЦЕНТР ДЕТСКОГО ТЕХНИЧЕСКОГО ТВОРЧЕСТВА»













Методическая разработка

«Введение в ООП на Python. Основные принципы»

к дополнительной общеобразовательной

общеразвивающей программе

технической направленности

«Программирование на Python»



Возраст детей: 10-17 лет









Автор: Костычев Вадим Александрович










г. Заречный Пензенской области

2023 г.

В ходе изучения программирования на основе языка Python изучается концепция объектно-ориентированного программирования. Она позволяет развить навыки построения более сложных алгоритмов при решении определенных узких задач.

Целью данной разработки является повышение интереса учащихся к техническому творчеству посредством работы над проектом на языке Python.

Данная методическая разработка используется как обучающий пример для работы по дополнительной общеобразовательной общеразвивающей программе технической направленности «Программирование на Python». С их помощью учащиеся смогут применить теоретические знания на практике, построив сложные алгоритмы для решения различных задач.



1. Введение в ООП

Что такое ООП?

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

Преимущества ООП

  • Повторное использование кода: классы и наследование позволяют переиспользовать уже написанные части программы.

  • Модульность: объекты создают структуру программы, делая код более читаемым и поддерживаемым.

  • Масштабируемость: ООП упрощает добавление новых функций и модулей.

  • Упрощение отладки: изоляция логики внутри объектов облегчает выявление и исправление ошибок.

Сравнение с процедурным программированием

Особенность

Процедурное программирование

ООП

Структура

Программа делится на функции.

Программа делится на классы и объекты.

Подход

Основан на действиях (что сделать).

Основан на сущностях (что это).

Повторное использование кода

Могут быть сложности с переиспользованием.

Поддерживается через классы и наследование.



Примеры использования ООП

  1. Графические интерфейсы: Кнопки, окна и другие элементы — это объекты.

  2. Игры: Персонажи, предметы и игровые механики представлены в виде объектов.

  3. Веб-приложения: Модели данных (например, пользователь, продукт) реализуются с помощью классов.



2. Основные принципы ООП

ООП базируется на четырёх ключевых принципах:

2.1 Инкапсуляция

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

Пример инкапсуляции в Python

class BankAccount:

def __init__(self, owner, balance):

self.owner = owner # Публичный атрибут

self.__balance = balance # Приватный атрибут



def deposit(self, amount):

if amount 0:

self.__balance += amount



def withdraw(self, amount):

if 0

self.__balance -= amount

else:

print("Недостаточно средств")



def get_balance(self):

return self.__balance



account = BankAccount("Alice", 1000)

print(account.owner) # Доступно

# print(account.__balance) # Ошибка: доступ запрещён

print(account.get_balance()) # 1000



Основные аспекты инкапсуляции:

  • Публичные атрибуты: доступны для всех (self.attribute).

  • Приватные атрибуты: доступны только внутри класса (self.__attribute).

  • Геттеры и сеттеры: методы для безопасного получения и изменения приватных данных.

2.2 Наследование

Наследование — это механизм, позволяющий одному классу (потомку) использовать и расширять функциональность другого класса (родителя).

Пример наследования

class Animal:

def __init__(self, name):

self.name = name



def speak(self):

pass



class Dog(Animal):

def speak(self):

return f"{self.name} говорит: Гав-гав!"



class Cat(Animal):

def speak(self):

return f"{self.name} говорит: Мяу!"



animals = [Dog("Шарик"), Cat("Мурка")]

for animal in animals:

print(animal.speak())



Основные аспекты наследования:

  • Подкласс наследует атрибуты и методы родительского класса.

  • Метод super() позволяет вызывать методы родителя.

  • Множественное наследование (класс может наследоваться от нескольких классов).

Пример использования super()

class Person:

def __init__(self, name, age):

self.name = name

self.age = age



class Employee(Person):

def __init__(self, name, age, position):

super().__init__(name, age)

self.position = position



employee = Employee("Анна", 30, "Менеджер")

print(employee.name, employee.age, employee.position)



2.3 Полиморфизм

Полиморфизм позволяет объектам с одинаковым интерфейсом использовать разную реализацию методов.

Пример полиморфизма

class Shape:

def area(self):

pass



class Circle(Shape):

def __init__(self, radius):

self.radius = radius



def area(self):

return 3.14 * self.radius ** 2



class Rectangle(Shape):

def __init__(self, width, height):

self.width = width

self.height = height



def area(self):

return self.width * self.height



shapes = [Circle(5), Rectangle(4, 6)]

for shape in shapes:

print(shape.area())



2.4 Композиция и агрегация

Вместо наследования иногда лучше использовать композицию — включение одного объекта в другой.

Пример композиции

class Engine:

def start(self):

print("Двигатель запущен")



class Car:

def __init__(self, model):

self.model = model

self.engine = Engine()



def start(self):

print(f"{self.model} запускается")

self.engine.start()



car = Car("Toyota")

car.start()



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