Класс (Class)

Класс — это шаблон или чертеж для создания объектов. Он определяет набор атрибутов (данных) и методов (функций), которыми будут обладать все объекты (экземпляры), созданные на основе этого класса.

  • Классы определяются с помощью ключевого слова class.
  • Имена классов принято писать в стиле PascalCase (или CapitalizedWords).
# Простейшее определение класса
class Dog:
    pass # Ключевое слово pass означает "ничего не делать"

Объект (Object / Instance)

Объект (или экземпляр класса) — это конкретная реализация класса. Если класс Dog — это чертеж собаки, то объект — это конкретная собака с именем, породой и т.д.

Объекты создаются путем “вызова” класса по его имени, как если бы это была функция:

my_dog = Dog() # Создаем объект (экземпляр) класса Dog
another_dog = Dog() # Создаем еще один независимый объект
 
print(type(my_dog)) # Вывод: <class '__main__.Dog'>
print(my_dog)       # Вывод: <__main__.Dog object at 0x...> (адрес в памяти)

Метод __init__ (Конструктор)

Метод __init__ — это специальный метод, который автоматически вызывается при создании нового объекта класса. Его основная задача — инициализировать атрибуты объекта (задать начальное состояние).

  • Называется конструктором (хотя технически в Python это инициализатор).

  • Первым параметром всегда принимает self.

  • Остальные параметры — это данные, которые нужны для создания объекта.

class Cat:
    # Метод __init__ для инициализации объекта
    def __init__(self, name, color, age):
        print(f"Создается новый кот по имени {name}!")
        # Атрибуты экземпляра (принадлежат конкретному объекту)
        self.cat_name = name # Принято называть атрибут так же, как параметр
        self.cat_color = color
        self.cat_age = age
 
# Создаем объект, передавая аргументы в __init__ (кроме self)
my_cat = Cat("Барсик", "Рыжий", 3)
 
# Доступ к атрибутам объекта через точку
print(f"Имя кота: {my_cat.cat_name}")     # Вывод: Имя кота: Барсик
print(f"Цвет кота: {my_cat.cat_color}")   # Вывод: Цвет кота: Рыжий
print(f"Возраст кота: {my_cat.cat_age}") # Вывод: Возраст кота: 3

Параметр self

self — это общепринятое имя для первого параметра методов экземпляра в Python (включая __init__).

  • Он ссылается на сам объект (экземпляр), для которого вызывается метод.

  • Через self мы получаем доступ к атрибутам и другим методам этого конкретного объекта.

  • При вызове метода для объекта (my_cat.some_method(arg1)), Python автоматически передает сам объект my_cat в качестве первого аргумента (self). Вам не нужно передавать его явно.

class Example:
    def __init__(self, value):
        self.data = value # Сохраняем value в атрибуте data этого объекта
 
    def show_data(self):
        # Используем self для доступа к атрибуту data этого объекта
        print(f"Данные этого объекта: {self.data}")
 
obj1 = Example(10)
obj2 = Example(20)
 
obj1.show_data() # Python неявно передает obj1 как self -> Данные этого объекта: 10
obj2.show_data() # Python неявно передает obj2 как self -> Данные этого объекта: 20

〰〰〰 𓆝 𓆟 𓆞 𓆝 𓆟 𓆝 𓆟 𓆞 〰〰〰