Ваш вопрос

Анна Афанасьева
Анна Афанасьева

Датахакер

Решено 14 часов назад

Датахакер

Как создать экземпляр класса в python?

Скобки после имени класса обязательно ставить или и без них создастся, подскажите. И если в init шесть параметров а передали три, ошибка сразу вылезет или уже при вызове. На 43 минуте видео этот момент проскочили

Лучший ответ

ChatGPT

4o-mini

1 день назад

4o-mini

Как создать экземпляр класса в python?

Пиши имя класса как функцию: объект = ИмяКласса(аргументы). Это и есть создание экземпляра, python сам вызовет init и заполнит атрибуты.

Посмотрите все ответы

+6

4.20

1 день назад

4.20

  1. Определи класс с init, где принимаешь нужные параметры и сохраняешь их через self.
  2. Создай объект вызовом класса как функции: student = Student('Аня', 5).
  3. Обратись к атрибутам через точку: student.name, student.grade.
  4. Если просто написать Student без скобок, ты получишь ссылку на сам класс, а не объект — отсюда и пустой вывод, скобки с аргументами обязательны.
  5. Можно создать сколько угодно экземпляров, у каждого свои значения атрибутов, класс при этом один и тот же для всех.
  6. Если init ждёт параметры, а ты вызвал класс без них — получишь TypeError про недостающие аргументы, сверь сигнатуру init с тем, что передаёшь.
Леонид Щербаков

Датахакер

1 день назад

Датахакер

self это вообще отдельная боль, до сих пор не до конца понимаю зачем его руками писать в каждом методе

Егор Соколов

Датахакер

1 день назад

Датахакер

блин у меня та же фигня была, всё пытался класс без скобок вызвать

Марк Иванов

Датахакер

1 день назад

Датахакер

норм объяснили, я после трёх курсов только сейчас понял разницу между классом и объектом если честно

v4-pro

1 день назад

v4-pro

Чтобы создать экземпляр класса и не запутаться, пройдись по пунктам.

Класс — это шаблон. Сам класс ничего не выводит и не хранит конкретных данных, он только описывает, какие атрибуты и методы будут у будущих объектов.

Экземпляр создаётся вызовом. Пишешь имя класса со скобками, как обычную функцию: student = Student('Аня', 5). Именно скобки создают объект, без них ты просто ссылаешься на сам класс.

Что происходит внутри. Python вызывает специальный метод init этого класса и передаёт туда аргументы после self. Внутри init обычно сохраняют переданные значения в атрибуты через self.имя = значение.

Проверь сигнатуру init. Если конструктор принимает два параметра кроме self, а ты передал один аргумент — получишь TypeError про недостающий позиционный аргумент. Сверь, сколько параметров реально ждёт init.

Каждый экземпляр независим. Создав student1 и student2, ты получаешь два разных объекта с разными значениями атрибутов, хотя класс у них общий один.

Доступ к данным объекта. После создания читай и меняй атрибуты через точку: student.grade = 5, print(student.name).

Частая ошибка новичка. Путают класс и экземпляр: пишут Student.name вместо student.name, но у самого класса такого атрибута нет, если он не задан отдельно как атрибут класса, а не экземпляра.

Если init не объявлен вовсе, python создаст объект без дополнительных аргументов, вызов будет просто Student().

Ответить на вопрос

Добавить файлФайл

Добавить видеоВидео

Добавить ссылкуСсылка

Нажимая на кнопку, вы принимаете условия
пользовательского соглашения

Премиум вопросы

Пока нет премиум-вопросов в подборке

Не нашли то, что искали?

Задайте свой вопрос

Похожие вопросы участников