0Pricing
Python Academy · Урок

Классы и метод __init__

Определяйте классы, создавайте объекты и инициализируйте атрибуты.

«Классы и метод __init__» — бесплатный урок Python Academy на CoddyKit. Это урок 1 из 4. Ты можешь прочитать весь урок бесплатно ниже — а потом практиковать его прямо в браузере с встроенным редактором кода и ИИ-репетитором 24/7. Это часть пути обучения Python Academy, и твой прогресс синхронизируется между веб-версией и приложением CoddyKit. Курс Python Academy содержит 4 уроков всего.

Определение класса

Используйте ключевое слово class, чтобы определить класс. По соглашению имена классов записываются в стиле CapWords.

class Dog:
    pass

fido = Dog()
print(type(fido))  # <class '__main__.Dog'>

Метод __init__

__init__ автоматически вызывается при создании объекта. Используйте его для настройки атрибутов экземпляра.

class Dog:
    def __init__(self, name, breed):
        self.name = name
        self.breed = breed

fido = Dog("Fido", "Labrador")
print(fido.name)   # Fido

Объяснение self

self ссылается на текущий экземпляр. Он должен быть первым параметром каждого метода экземпляра. Python передаёт его автоматически.

class Counter:
    def __init__(self):
        self.count = 0

    def increment(self):
        self.count += 1

c = Counter()
c.increment()
print(c.count)  # 1

Несколько экземпляров

У каждого экземпляра есть собственная копия атрибутов экземпляра, заданных в __init__.

class Point:
    def __init__(self, x, y):
        self.x = x
        self.y = y

p1 = Point(1, 2)
p2 = Point(5, 7)
print(p1.x, p2.x)  # 1 5

Значения параметров по умолчанию в __init__

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

class Circle:
    def __init__(self, radius=1.0):
        self.radius = radius

c1 = Circle()
c2 = Circle(5)
print(c1.radius, c2.radius)  # 1.0 5

Методы экземпляра

Методы, определённые внутри класса, работают с экземпляром через self.

class Rectangle:
    def __init__(self, w, h):
        self.w = w
        self.h = h

    def area(self):
        return self.w * self.h

r = Rectangle(4, 5)
print(r.area())  # 20

Добавление атрибутов после создания

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

class Person:
    def __init__(self, name):
        self.name = name

p = Person("Alice")
p.age = 30      # added after creation
print(p.name, p.age)

Возвращаемое значение __init__

__init__ должен возвращать None. Возврат любого другого значения вызывает TypeError.

class Broken:
    def __init__(self):
        return 42   # TypeError!

# Correct
class OK:
    def __init__(self):
        self.value = 42
        # implicit return None

Проверка типа экземпляра

Используйте isinstance(), чтобы проверить, является ли объект экземпляром класса.

class Animal:
    pass

class Dog(Animal):
    pass

d = Dog()
print(isinstance(d, Dog))     # True
print(isinstance(d, Animal))  # True

Атрибут __dict__

Каждый экземпляр хранит свои атрибуты в словаре __dict__.

class Book:
    def __init__(self, title, pages):
        self.title = title
        self.pages = pages

b = Book("Python 101", 300)
print(b.__dict__)  # {'title': 'Python 101', 'pages': 300}

Удаление атрибутов

Используйте del, чтобы удалить атрибут экземпляра во время выполнения программы.

class Config:
    def __init__(self):
        self.debug = True
        self.version = "1.0"

cfg = Config()
del cfg.debug
print(hasattr(cfg, "debug"))  # False

Быстрая проверка

Каково назначение self в методах классов Python?

Повторение

Классы служат шаблонами для объектов. __init__ инициализирует атрибуты экземпляра, self ссылается на текущий объект, а каждый экземпляр поддерживает собственный словарь атрибутов.

Часто задаваемые вопросы

Урок «Классы и метод __init__» бесплатный?

Да — полный текст урока «Классы и метод __init__» бесплатно доступен здесь в веб-версии. Чтобы практиковать его интерактивно (встроенный редактор кода и ИИ-репетитор 24/7) и разблокировать остальной курс Python Academy, подпишись на CoddyKit PRO. Курс Python Academy содержит 4 уроков всего.

Чему я научусь в уроке «Классы и метод __init__»?

Определяйте классы, создавайте объекты и инициализируйте атрибуты. Ты практикуешь Python Academy с помощью реального кода, который запускаешь прямо в браузере, и ИИ-репетитор 24/7 отвечает на твои вопросы во время урока.

Нужен ли мне опыт, чтобы начать Python Academy?

Предыдущий опыт не требуется. Python Academy на CoddyKit структурирован для всех уровней — от новичков до продвинутых, поэтому ты можешь начать отсюда или с самого начала и учиться в своем темпе. Это урок 1 из 4.

Сколько времени занимает урок «Классы и метод __init__»?

Большинство уроков CoddyKit занимают около 5–10 минут. Каждый из них компактный и интерактивный, поэтому ты постоянно делаешь прогресс и продолжаешь с того же места в веб-версии и приложении.

Можно ли писать и запускать код в этом уроке Python Academy?

Да. Каждый урок Python Academy включает встроенный редактор кода, поэтому ты пишешь и запускаешь реальный код прямо в браузере и получаешь моментальную обратную связь от AI — локальная установка не требуется.

Все уроки этого курса

  1. Классы и метод __init__
  2. Атрибуты экземпляра и класса
  3. Методы экземпляра и self
  4. Магические методы: __str__ и __repr__
← Назад к Python Academy