Класс (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
〰〰〰 𓆝 𓆟 𓆞 𓆝 𓆟 𓆝 𓆟 𓆞 〰〰〰