Конструктор класса
Конструктор класса в Python — это специальный метод, который автоматически вызывается при создании экземпляра класса и отвечает за инициализацию объекта.
В Python конструктор — это метод __init__
__init__Его задача — задать начальные значения атрибутов объекта.
Обязательно должен принимать как минимум один аргумент —
self(ссылка на создаваемый объект).Можно принимать любые дополнительные параметры, чтобы передавать данные при создании объекта.
Синтаксис
class MyClass:
    def __init__(self, arg1, arg2):
        self.arg1 = arg1
        self.arg2 = arg2Пример
class Person:
    def __init__(self, name, age):
        self.name = name    # присваиваем имя объекту
        self.age = age      # присваиваем возраст
    def greet(self):
        print(f"Привет, меня зовут {self.name}, мне {self.age} лет.")
# Создаём объект
p = Person("Иван", 30)
p.greet()  # Привет, меня зовут Иван, мне 30 лет.Особенности
__init__— не создает объект, а лишь инициализирует уже созданный (создание происходит через__new__, но обычно это не нужно трогать).Можно создавать конструктор с параметрами по умолчанию, чтобы можно было создавать объекты с разным набором данных.
Внутри конструктора можно вызывать другие методы и выполнять любую логику инициализации.
Пример: Конструктор в классе страницы для Selenium WebDriver
from selenium import webdriver
from selenium.webdriver.common.by import By
class LoginPage:
    def __init__(self, driver):
        self.driver = driver  # Инициализируем драйвер, чтобы использовать его в методах
        # Определяем локаторы элементов
        self.username_input = (By.ID, "username")
        self.password_input = (By.ID, "password")
        self.login_button = (By.ID, "loginBtn")
    def enter_username(self, username):
        self.driver.find_element(*self.username_input).send_keys(username)
    def enter_password(self, password):
        self.driver.find_element(*self.password_input).send_keys(password)
    def click_login(self):
        self.driver.find_element(*self.login_button).click()Как использовать:
driver = webdriver.Chrome()
driver.get("https://example.com/login")
login_page = LoginPage(driver)  # Конструктор инициализирует драйвер и локаторы
login_page.enter_username("my_user")
login_page.enter_password("my_password")
login_page.click_login()Почему конструктор важен здесь?
Передаём driver в конструктор — чтобы иметь доступ к веб-драйверу в методах класса.
В конструкторе задаём локаторы и другие начальные данные.
Это упрощает повторное использование кода и делает тесты более читаемыми и поддерживаемыми.
Last updated
Was this helpful?