Метод __init__()

Тренажер по Python для пользователей с начальным уровнем подготовки.

Тренажер по Python

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

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

Будьте внимательны к синтаксису: двоеточиям, отступам и ключевым словам. В Python отступы играют критическую роль, определяя структуру класса и его методов.

Список тем

Объявление класса

id: 40087_task_oop_1

Напишите код для создания пустого класса с именем Robot. Используйте ключевое слово для определения класса и оператор-заглушку для тела класса.

Заполните пропуски
input1S Robotinput2S
    input3S
Сообщения
Проверить
Показать решение на 3 сек.
Показать подсказку

Классы, Объекты и Методы

id: 40087_task_oop_2

В ООП важно различать "чертеж" (класс), конкретное "изделие" по этому чертежу (объект/экземпляр) и действия, которые они могут выполнять (методы). Распределите примеры кода по соответствующим категориям.

Перетяните элементы в соответствующие блоки
Определение Класса
Создание Объекта (Экземпляра)
Определение Метода
class User:
admin = User()
def login(self):
class Cat:
my_cat = Cat()
def meow(self):
Сообщения
Проверить
Показать подсказку

Конструктор класса

id: 40087_task_oop_3

Соберите метод-конструктор, который принимает имя пользователя и сохраняет его в атрибут объекта. Используйте элементы из банка данных. Обратите внимание: в банке достаточно элементов для всех пропусков.

Нужно правильно расставить в пропуски предложенные варианты
class Player:
    def input1S(input2S, name):
        input3S.name = name
__init__
self
self
name
return
Сообщения
Проверить
Показать решение на 3 сек.
Показать подсказку

Найдите ошибку в методе

id: 40087_task_oop_4

Этот код вызывает ошибку TypeError при вызове метода. Найдите и исправьте строку с определением метода внутри класса.

Найдите ошибку и исправьте
class Greeter:
    def say_hello():
        print("Hello world!")
 
g = Greeter()
g.say_hello()
Сообщения
Проверить
Показать решение на 3 сек.
Показать подсказку

Инициализация атрибутов

id: 40087_task_oop_5

Допишите метод __init__ так, чтобы он сохранял переданные значения brand и year в атрибуты объекта с такими же именами.

Заполните пропуски
class Car:
    def __init__(self, brand, year):
        input1S.brand = input2S
        self.year = input3S
Сообщения
Проверить
Показать решение на 3 сек.
Показать подсказку

Соберите класс Dog

id: 40087_task_oop_6

Соберите правильный код, который создает класс Dog, инициализирует имя и возраст, а затем создает экземпляр этого класса. Будьте внимательны к отступам и наличию self.

Перетяните в правильном порядке строки из одного блока в другой
class Dog:
    def __init__(self, name, age):
        self.name = name
        self.age = age
my_dog = Dog("Rex", 5)
    def __init__(name, age):
my_dog = Dog
Сообщения
Проверить
Показать решение на 3 сек.
Показать подсказку

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

id: 40087_task_oop_7

Мы создали класс Fruit с атрибутом name. Что выведет последняя строка кода? Обратите внимание, как мы обращаемся к свойству объекта.

Выберите правильный вариант ответа
class Fruit:
    def __init__(self, name):
        self.name = name

f = Fruit("Apple")
print(f.name)
Сообщения
Проверить
Показать подсказку

Полный цикл: Класс, Объект, Метод

id: 40087_task_oop_8

Восстановите логический порядок кода: от объявления класса до вызова метода. Программа должна вывести "I am writing".

Расставьте строки в правильном порядке
p = Pen()
class Pen:
p.write()
    def write(self):
        print("I am writing")
Сообщения
Проверить
Показать подсказку

Терминология ООП

id: 40087_task_oop_9

Сопоставьте ключевые понятия ООП в Python с их описанием.

Сопоставьте строки в правой части с соответствующими строками в левой по порядковому номеру
Ссылка на текущий объект (экземпляр)
Конструктор (метод инициализации)
Переменная, принадлежащая объекту
__init__
self
Атрибут (Attribute)
Сообщения
Проверить
Показать подсказку

Вычисление внутри метода

id: 40087_task_oop_10

Проанализируйте класс Calculator. Какой результат выведет этот код? Введите число.

Что должно получиться?
class Calculator:
    def add(self, x, y):
        return x + y

calc = Calculator()
result = calc.add(10, 5)
print(result)
Сообщения
Проверить
Показать подсказку
НайтиКурс.Ру