Загрузка...

Класс данных

У гостя уже есть имя nora и место 12, но init, который всё это собирает, вы не писали. Строка @dataclass над Guest смотрит на поля и готовит эту часть сама. str вы тоже не пишете. Пакет при этом не ставится, и папка не создаётся.

Имя и место гостя

python
from dataclasses import dataclass

@dataclass
class Guest:
    name: str
    seat: int

guest = Guest("nora", 12)
print(guest)

Самого гостя вы по-прежнему создаёте вручную: Guest("nora", 12). Сначала идёт слово, потом число, потому что поля объявлены именно в таком порядке. print(guest) выводит оба значения в одну строку, и на экране ровно она: Guest(name='nora', seat=12). Гость не лежит внутри другого объекта, и Guest не наследует никакому другому классу.

Кавычки у nora стоят потому, что это сохранённое слово. У 12 их нет: это целое число, и десятичной точки в нём тоже нет. Строку выводит print. guest.name даёт nora, а guest.seat даёт 12. Второй строки нет, badge не добавляется, blue не пишется. str вы ни разу не набирали. Вид напечатанной строки задаёт @dataclass. Уберите print, и экран останется пустым, ведь создать гостя и вывести его — не одно и то же.

Если пропустить место, программа остановится. Guest("nora") в программе нет: у поля seat не оказалось значения, поэтому остановка называется TypeError. None не выводится, и дальше программа не идёт. Строки name: str и seat: int — это поля. Второго гостя и папку они не создают. Не пишите class Guest(Pen): такая запись делает класс-наследник. Сумка с ручкой внутри тоже не тема этой страницы. Здесь один гость, и оба поля живут на нём.

Один гость, два поля

Создан один гость, заполнены два поля, и print вывел их на экран. Следующая страница — искать ошибку. Эта только хранит имя и место и выводит их на экран.

🧠 Проверьте Свои Знания

Готов к Началу

Проверьте Свои Знания

Бросьте себе вызов с помощью этой интерактивной викторины и узнайте, насколько хорошо вы понимаете тему

❓
7
Вопросы
🎯
70%
Для Прохождения
♾️
∞
Время
🔄
∞
Попытки

📝 Инструкции

  • Внимательно прочитайте каждый вопрос
  • Выберите лучший ответ на каждый вопрос
  • Вы можете пересдавать тест столько раз, сколько захотите
  • Ваш прогресс будет показан вверху