Разбираемся с __init__ и self в Python
План статьи
- Введение в объектно-ориентированное программирование (ООП) в Python
- Конструктор класса: метод __init__
- Использование ключевого слова self
- Примеры использования __init__ и self
- Преимущества и недостатки __init__ и self
- Популярные вопросы и ответы
- Заключение
Введение в объектно-ориентированное программирование (ООП) в Python
Объектно-ориентированное программирование (ООП) — это парадигма программирования, которая основывается на концепции объектов. Объекты могут содержать данные в виде полей, часто называемых атрибутами, и кода, в виде методов. Python поддерживает ООП, и это один из наиболее популярных и эффективных способов организации кода.
Конструктор класса: метод __init__
В Python метод __init__
(произносится как инициализатор) является специальным методом, который вызывается при создании нового экземпляра класса. Этот метод позволяет задавать начальные значения атрибутов объекта, что делает его чрезвычайно важным для правильной инициализации объектов.
Синтаксис метода __init__
:
class MyClass:
def __init__(self, param1, param2):
self.param1 = param1
self.param2 = param2
Использование ключевого слова self
Ключевое слово self
в Python используется для обозначения текущего экземпляра класса. Оно необходимо для того, чтобы Python понимал, к каким свойствам и методам мы обращаемся внутри класса. По сути, self
позволяет нам ссылаться на атрибуты и методы объекта внутри других методов класса.
Пример использования self
:
class Car:
def __init__(self, make, model):
self.make = make
self.model = model
def display_info(self):
print(fCar make: {self.make}, Model: {self.model})
В данном примере self.make
и self.model
обозначают атрибуты текущего экземпляра класса Car.
Примеры использования __init__ и self
Рассмотрим несколько примеров использования __init__
и self
.
Пример 1: Простой класс Person
class Person:
def __init__(self, name, age):
self.name = name
self.age = age
def greet(self):
print(fHello, my name is {self.name} and I am {self.age} years old.)
# Создание экземпляров класса Person
person1 = Person(Alice, 30)
person2 = Person(Bob, 25)
# Вызов метода greet
person1.greet()
person2.greet()
Пример 2: Класс с методами изменения атрибутов
class BankAccount:
def __init__(self, account_holder, balance=0.0):
self.account_holder = account_holder
self.balance = balance
def deposit(self, amount):
self.balance += amount
print(fDeposited {amount}. New balance is {self.balance}.)
def withdraw(self, amount):
if amount