self

1. Что такое self

  • self — это ссылка на текущий экземпляр класса.

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

  • В Python self передаётся автоматически при вызове метода, но его нужно обозначить первым параметром метода.


2. Пример использования

class User:
    def __init__(self, name, age):
        self.name = name  # атрибут экземпляра
        self.age = age

    def greet(self):
        return f"Hello, {self.name}!"

# Создание объекта
user1 = User("Alice", 30)
print(user1.greet())  # "Hello, Alice!"
  • Здесь self.name и self.age — атрибуты конкретного объекта user1.

  • Метод greet использует self, чтобы обратиться к этим атрибутам.


3. Важные моменты

  1. self обязательно в методах экземпляра, но не нужно передавать при вызове:

user1.greet()  # Python автоматически подставляет user1 в self
  1. Можно использовать любое имя вместо self, но по стандарту используют именно self:

class MyClass:
    def method(this, x):
        this.x = x
  1. self нужен только для методов экземпляра, а не для статических методов:

class MyClass:
    @staticmethod
    def static_method():
        print("No self here")

4. Применение в автоматизации тестирования

  • Page Object Model: self позволяет хранить элементы страницы как атрибуты и использовать их в методах:

class LoginPage:
    def __init__(self, driver):
        self.driver = driver
        self.username_input = driver.find_element(...)
    
    def login(self, username, password):
        self.username_input.send_keys(username)
  • Тестовые данные и состояния объектов: self хранит текущие значения атрибутов для проверки состояния теста.


💡 Вывод:

  • self = ссылка на конкретный объект класса.

  • Через self методы и атрибуты экземпляра связываются с конкретным объектом, что важно в ООП и автоматизации тестирования.

Last updated

Was this helpful?