Перейти до основного контенту

Що таке self в python простою мовою? Зрозуміле пояснення

8 хв читання
2435 переглядів

self - це ключове слово в мові програмування Python, яке використовується для посилання на поточний об'єкт класу. В інших мовах програмування воно може називатися по-різному, наприклад, this мовою C++ або self у мові Java. Саме по собі ключове слово self не має певного значення чи функціоналу, але його використання є важливою частиною синтаксису мови Python.

Коли ви створюєте об'єкт класу, кожен метод цього класу повинен приймати принаймні один аргумент - self. Цей аргумент автоматично передається кожному методу в момент виклику і посилається на створений об'єкт. За допомогою ключового слова self ви можете отримати доступ до атрибутів та методів цього об'єкта.

Наприклад, якщо у вас є клас Person, який має атрибут name та метод introduce :

class Person:def __init__(self, name):self.name = namedef introduce(self):print("Привет, меня зовут", self.name)

Ви можете створити об'єкт цього класу та викликати його методи наступним чином:

p = Person("Анна")p.introduce()

В цьому випадку, при виклику методу introduce у об'єкта p , аргумент self буде автоматично посилатися на цей об'єкт. Таким чином, всередині методу introduce ми можемо отримати доступ до атрибута name об'єкта за допомогою self.name .

Що таке self у Python?

У Python ключове слово "self" використовується в методах класів для посилання на сам об'єкт класу. Воно являє собою посилання на самого себе, що дозволяє об'єкту класу звертатися до своїх змінних і методам.

Коли об'єкт класу викликає метод, він автоматично передає посилання на себе як перший аргумент цього методу, використовуючи ключове слово "self". Це дозволяє методу отримати доступ до змінних та методів об'єкта, з яким він був викликаний.

class MyClass:def __init__(self, name):self.name = namedef say_hello(self):print(f"Привет, меня зовут !")obj = MyClass("Алекс")obj.say_hello()
Привет, меня зовут Алекс!

У наведеному прикладі ми маємо клас MyClass, який має змінну name та метод say_hello. У методі say_hello ми використовуємо ключове слово "self" для доступу до змінної name об'єкта класу.

Коли ми створюємо об'єкт класу MyClass і викликаємо метод say_hello(), метод автоматично отримує посилання на об'єкт як перший аргумент. Тому всередині методу ми можемо звернутися до змінної name об'єкта, використовуючи self.name.

Простою мовою:

Self можна уявити як просто посилання на сам об'єкт, який оголошений класом. Це дозволяє методам класу оперувати параметрами об'єкта і змінювати їх значення.

Наприклад, якщо у нас є клас "Собака" з атрибутами "ім'я" і "вік", і методом "гавкати", то при виклику методу "гавкати" з аргументом self, ми можемо звернутися до атрибутів об'єкта і наприклад вивести на екран: "Мене звуть [ім'я], мене [вік] років!"

Зрозуміле пояснення:

Уявімо, що клас-це креслення, за яким створюються об'єкти. Коли ми створюємо об'єкт на основі класу, в пам'яті комп'ютера виділяється місце для зберігання всіх його атрибутів і методів. Такий об'єкт називається екземпляром класу.

Коли ми викликаємо метод екземпляра класу, нам потрібно вказати, на якому саме екземплярі ми хочемо його викликати. В цьому і допомагає параметр self, який автоматично передається при виклику методу.

Наприклад, у нас є клас "людина", який має метод "привітання". Ми створюємо екземпляр класу " Іван "і викликаємо метод" привітання " на цьому екземплярі. При виклику методу Python автоматично передає в нього параметр self, що вказує на даний екземпляр.

Завдяки параметру self ми можемо отримати доступ до атрибутів та методів екземпляра класу всередині самого класу. Наприклад, якщо у нас є атрибут "ім'я" і ми хочемо вивести його значення, то ми можемо написати print(self.ім'я), де self вказує на поточний екземпляр класу.