Этот урок посвящен основам Объектно-Ориентированного Программирования (ООП) в Python. Вы научитесь создавать свои собственные классы, понимать разницу между классом и объектом (экземпляром), использовать конструктор __init__ и параметр self.
Мы пройдем путь от объявления простейшего класса до создания объектов с уникальными свойствами и методами. Задания включают в себя написание кода, поиск ошибок, восстановление последовательности и предсказание результатов работы программы.
Будьте внимательны к синтаксису: двоеточиям, отступам и ключевым словам. В Python отступы играют критическую роль, определяя структуру класса и его методов.
- Модуль 1: Основы синтаксиса Python
- Модуль 2: Переменные и типы данных
- Модуль 3: Операторы
- Арифметические операторы (+, -, *, /).
- Целочисленное деление и остаток (// и %).
- Возведение в степень (**).
- Операторы сравнения.
- Логические операторы (and, or, not).
- Операторы присваивания (=, +=, -=).
- Операторы принадлежности (in, not in).
- Операторы идентичности (is, is not).
- Битовые операторы.
- Тернарный оператор.
- Модуль 4: Ввод и вывод данных
- Модуль 5: Условные конструкции
- Модуль 6: Циклы
- Модуль 7: Строки
- Модуль 8: Списки
- Модуль 9: Кортежи
- Модуль 10: Словари
- Модуль 11: Множества
- Модуль 12: Функции
- Модуль 13: Встроенные функции
- Модуль 14: Работа с файлами
- Модуль 15: Обработка исключений
- Модуль 16: Модули и пакеты
- Модуль 17: ООП - Основы
- Создание классов.
- Метод __init__().
- Модуль 18: ООП - Продвинутый уровень
- Модуль 19: Декораторы
- Модуль 20: Генераторы и итераторы
- Модуль 21: Регулярные выражения
- Модуль 22: Дата и время
- Модуль 23: Математические операции
- Модуль 24: Работа с сетью
- Модуль 25: Асинхронное программирование
- Модуль 26: Многопоточность
- Модуль 27: Тестирование
- Модуль 28: Базы данных
- Модуль 29: Алгоритмы и структуры данных
- Модуль 30: Продвинутые возможности
Объявление класса
Напишите код для создания пустого класса с именем Robot. Используйте ключевое слово для определения класса и оператор-заглушку для тела класса.
input1S Robotinput2S
input3SКлассы, Объекты и Методы
В ООП важно различать "чертеж" (класс), конкретное "изделие" по этому чертежу (объект/экземпляр) и действия, которые они могут выполнять (методы). Распределите примеры кода по соответствующим категориям.
class User:admin = User()def login(self):class Cat:my_cat = Cat()def meow(self):Конструктор класса
Соберите метод-конструктор, который принимает имя пользователя и сохраняет его в атрибут объекта. Используйте элементы из банка данных.
class Player:
def input1S(input2S, name):
input3S.name = nameНайдите ошибку в методе
Этот код вызывает ошибку TypeError при вызове метода. Найдите и исправьте строку с определением метода внутри класса.
class Greeter: def say_hello(): print("Hello world!") g = Greeter()g.say_hello()Инициализация атрибутов
Допишите метод __init__ так, чтобы он сохранял переданные значения brand и year в атрибуты объекта с такими же именами.
class Car:
def __init__(self, brand, year):
input1S.brand = input2S
self.year = input3SСоберите класс Dog
Соберите правильный код, который создает класс Dog, инициализирует имя и возраст, а затем создает экземпляр этого класса. Будьте внимательны к отступам и наличию self.
class Dog: def __init__(self, name, age): self.name = name self.age = agemy_dog = Dog("Rex", 5) def __init__(name, age):my_dog = DogДоступ к атрибутам
Мы создали класс Fruit с атрибутом name. Что выведет последняя строка кода? Обратите внимание, как мы обращаемся к свойству объекта.
class Fruit:
def __init__(self, name):
self.name = name
f = Fruit("Apple")
print(f.name)Полный цикл: Класс, Объект, Метод
Восстановите логический порядок кода: от объявления класса до вызова метода. Программа должна вывести "I am writing".
p = Pen()class Pen:p.write() def write(self): print("I am writing")Терминология ООП
Сопоставьте ключевые понятия ООП в Python с их описанием.
__init__selfАтрибут (Attribute)Вычисление внутри метода
Проанализируйте класс Calculator. Какой результат выведет этот код? Введите число.
class Calculator:
def add(self, x, y):
return x + y
calc = Calculator()
result = calc.add(10, 5)
print(result)