Що таке Self у Python: реальні приклади

Під час написання класів на Python ви часто можете зустріти термін 'self.'Це важлива концепція, яку повинні розуміти початківці, коли вони глибше занурюються в об’єктно-орієнтовані функції мови програмування Python.

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

У цьому посібнику з Python ми дослідимо, як selfзмінна відіграє ключову роль у класах Python. Ми також покажемо вам, як підтримувати ясність коду, модульність і можливість повторного використання за допомогою self.

Зміст

Розуміння себе в Python

Python — це мова об’єктно-орієнтованого програмування (ООП) , яка значною мірою покладається на класи та об’єкти. Отже, перш ніж занурюватися в selfпараметри, ми повинні спочатку зрозуміти, що таке об'єктно-орієнтоване програмування.

Об’єктно-орієнтоване програмування на Python

Що таке Self у Python: реальні прикладиНаписання крейдою – ООП, об’єктно-орієнтоване програмування " data-medium-file="https://blog.enterprisedna.co/wp-content/uploads/2023/04/istockphoto-147480805-612x612-1-300x200.jpg" data- large-file="https://blog.enterprisedna.co/wp-content/uploads/2023/04/istockphoto-147480805-612x612-1.jpg" decoding="async" loading="лінивий" src="https: //blog.enterprisedna.co/wp-content/uploads/2023/04/istockphoto-147480805-612x612-1.jpg" alt="Що таке Self у Python." class="wp-image-206807" width=" 709" height="472" srcset="https://blog.enterprisedna.co/wp-content/uploads/2023/04/istockphoto-147480805-612x612-1.jpg 612w, https://blog.enterprisedna.co /wp-content/uploads/2023/04/istockphoto-147480805-612x612-1-300x200.jpg 300 Вт, https://blog.enterprisedna.co/wp-content/uploads/2023/04/istockphoto-147480805-612x612-1-560x372.jpg 560w" sizes="(max-width: 709px) 100vw, 709px">

Об’єктно-орієнтоване програмування допомагає програмістам моделювати концепції та зв’язки реального світу за допомогою використання класів та об’єктів. Це призводить до того, що код є більш структурованим, придатним для багаторазового використання та масштабованим.

Подумайте про клас як про шаблон для створення об’єктів із заздалегідь визначеними властивостями та методами. Крім того, об’єкт — це екземпляр класу, який зберігає власні значення для атрибутів і має доступ до функцій класу.

Ці дві концепції є важливим будівельним блоком у багатьох програмах. У цьому відео про те, як легко створювати дані за допомогою бібліотеки Python Faker, ви можете побачити роботу класів і об’єктів.

Роль Python Self

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

Ось кілька ключових моментів щодо використання self в Python:

  • Selfне є зарезервованим ключовим словом у синтаксисі Python . Ви можете використовувати інші імена для ідентифікації екземплярів класу, але selfце найбільш широко використовувана та прийнята конвенція програмістами Python.
  • Selfвикористовується як перший параметр у методах екземпляра для посилання на поточний екземпляр класу.
  • Ви можете використовувати self, щоб розрізнити атрибути екземпляра та локальні змінні, що зробить ваш код більш читабельним і менш глючним.
  • Під час виклику методу екземпляра Python автоматично передає екземпляр як перший параметр.
  • Ви повинні оголосити selfпараметр у __init__() конструкторі та всіх інших наступних конструкторах функцій у вашому класі. Якщо цього не зробити, ваша програма викине typeerror.

    Ви можете побачити приклад цієї помилки нижче:

class Person: def __init__(self): print('welcome') def show_person(): print('I love pandas.') a = Person() b = a.show_person() Traceback (most recent call last): File "person.py", line 10, in trill = b.show_person() ^^^^^^^^^^^^^^^^^^ TypeError: Person.show_person() takes 0 positional arguments but 1 was given

Примітка. Ви можете обійти використання self параметра у функціях за допомогою функції статичного методу, яку надає Python 3. Ми розглянемо це більш детально в наступному розділі.

Робота з собою

Що таке Self у Python: реальні приклади

Навчитися використовувати self дуже важливо для створення класів на Python. У цьому розділі ви дізнаєтеся, як використовувати self в різних сценаріях під час роботи з класами та об’єктами.

Ініціалізація об'єктів за допомогою '__init__()'

Що таке Self у Python: реальні приклади

Під час створення нового екземпляра класу __init__() метод викликається для ініціалізації атрибутів об’єкта. Метод __init__() є конструктором класу, і він приймає self параметр як свій перший аргумент.

Параметр selfвикористовується в цьому методі, щоб зв’язати атрибути екземпляра з заданими аргументами.

Ось приклад:

class Person: def __init__(self, name, age): self.name = name self.age = age person1 = Person("Alice", 30)

У цьому прикладі метод приймає , і як параметри під час ініціалізації об’єкта. Параметр посилається на екземпляр класу, дозволяючи вам встановити атрибути і для конкретного створюваного об’єкта. init selfnameageself nameage

Використання Self у методах

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

Давайте розширимо попередній приклад:

class Person: def __init__(self, name, age): self.name = name self.age = age def introduce(self): print("Hello, my name is " + self.name + " and I'm " + str(self.age) + " years old.") person1 = Person("Alice", 30) person1.introduce()

У цьому прикладі introduce()метод містить selfперший параметр. Це дає змогу отримати доступ до назви об’єкта та атрибутів віку та створити персоналізоване введення.

Під час виклику методу у вашому коді вам не потрібно передавати self параметр явно. Python подбає про це автоматично.

Дотримуючись цих вказівок і розуміючи призначення selfin, початківці можуть ефективно працювати з класами та об’єктами. Це дає їм змогу створювати добре структурований код, який легко читати та підтримувати.

Звичайні випадки самостійного використання

Що таке Self у Python: реальні приклади

Є багато способів використання ключового слова в коді Python. Розуміючи ці випадки використання, ви зможете ефективно використовувати їх у своїх програмах. self self

Давайте розглянемо деякі з них:

Доступ до атрибутів класу

Одним із основних способів використання selfє доступ до атрибутів екземпляра в межах класу. Атрибути екземпляра є специфічними для об’єкта, створеного з класу, і зберігають дані об’єкта.

Використання selfдозволяє керувати цими атрибутами або отримувати доступ до них у методах класу. Давайте розглянемо приклад:

class Dog: def __init__(self, name, age): self.name = name self.age = age def display_name(self): print("The dog's name is:", self.name)

У цьому прикладі ми використовували self для доступу до атрибута name об’єкта Dog у display_name методі.

Виклик методів класу

Іншим поширеним випадком використання selfє виклик інших методів класу з методу екземпляра. Це дозволяє повторно використовувати код, зменшити складність і покращити читабельність.

Це важливо використовувати selfпід час посилань на інші методи, оскільки це гарантує, що правильний метод викликається для конкретного екземпляра. Розглянемо такий приклад:

class Bird: def __init__(self, species, color): self.species = species self.color = color def show_species(self): print("The bird species is:", self.species) def show_info(self): self.show_species() print("The bird color is:", self.color)

У наведеному вище прикладі ми використовуємо selfдля виклику show_speciesметоду з самого show_infoметоду. Це дає нам змогу відобразити вид і колір птахів за один виклик.

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

Найкращі самостійні практики

Що таке Self у Python: реальні приклади

Працюючи з self,ним, ви повинні дотримуватися певних умов, щоб уникнути проблем і помилок у своєму коді. Ось деякі з них.

Де використовувати Self

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

Це важливо використовувати selfпід час роботи з екземплярами об’єктів у Python. Його використання забезпечує послідовну поведінку та правильну інкапсуляцію об’єктів.

Наприклад, розглянемо такий клас:

class MyClass: def __init__(self, my_var): self.my_var = my_var

Тут параметр self використовується в __init__ методі для ініціалізації my_var атрибута примірника об’єкта. Таким чином, стає специфічним атрибутом екземпляра. my_var

У результаті до нього можна отримати доступ і змінити його за допомогою самопосилання в інших методах класу.

Правила іменування для себе

Хоча selfце умовна назва, яка використовується для екземпляра в Python, технічно ви можете використовувати будь-яку назву, яка вам подобається. Однак настійно рекомендується використовувати self для ясності та узгодженості з ширшою спільнотою Python.

Використання іншої назви може викликати плутанину у тих, хто читає та працює з вашим кодом, особливо якщо вони звикли до стандартних імен у бібліотеках Python.

Де не можна використовувати Self

Ми вже знаємо, що selfпараметр забезпечує доступ до екземпляра об'єкта. Однак у деяких випадках деякі функції в класі можуть не потребувати доступу до примірника об’єкта.

У цьому випадку параметр self не потрібен. Отже, Python надає функцію статичного методу для обходу параметра self:

Ось приклад:

class Car: @staticmethod def print_car(): print('Vroom Vroom')

У наведеному вище прикладі @staticmethodдекоратор функції перевизначає selfвимогу параметра в методі. Таким чином, функція працюватиме, навіть якщо в неї не передано екземпляр об’єкта.

Висновок

Що таке Self у Python: реальні приклади

Таким чином, параметр self у Python посилається на екземпляр класу та дозволяє отримати доступ до його атрибутів і методів. Як розробнику Python важливо розуміти призначення self і його використання в класах і об’єктах.

Послідовно використовуючи self у своєму коді, ви сприяєте читабельності та зручності обслуговування, що покращує загальну якість вашої роботи.

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

Ви можете назвати перший параметр у методі класу як завгодно; self – це лише бажане умовне позначення.

Чи є self ключовим словом у Python? 

Є питання, яке завжди хвилює програмістів Python. Чи насправді self є ключовим словом у Python? 

На відміну від інших мов програмування, таких як C++, де self вважається ключовим словом, у Python програмісти зазвичай дотримуються цього правила. По суті, це параметр у визначенні методу. Однак ви можете використовувати будь-яке інше ім’я замість себе, наприклад інший або я або будь-що інше для першого параметра методу. Ще одна причина, чому це пропонується більшістю людей, полягає в тому, що це покращує читабельність вашого коду. 

Давайте подивимося на прикладі, щоб це зрозуміти: 

class myClass:   def show(another):   print(«інший використовується замість self»)  

Якщо ви порівняєте цей код із кодом самоконструктора класу Python, ви помітите, що тут ми використали ім’я іншого в місце самого себе. Тепер давайте створимо об’єкт цього класу та побачимо результат: 

object = myClass()   object.show()

Ви бачите, що програма працює, навіть якщо ми використовуємо інше ім’я замість змінної self. Це працює точно так само, як і змінна self. 


Змініть формати дати за допомогою редактора Power Query

Змініть формати дати за допомогою редактора Power Query

У цьому посібнику ви дізнаєтеся, як перетворити текст у формат дати за допомогою редактора Power Query в LuckyTemplates.

Power Query: об’єднайте файли з кількох папок

Power Query: об’єднайте файли з кількох папок

Дізнайтеся, як об’єднати файли з кількох папок у мережі, робочому столі, OneDrive або SharePoint за допомогою Power Query.

Обчисліть місячне ковзне середнє з початку року (з початку року) у LuckyTemplates

Обчисліть місячне ковзне середнє з початку року (з початку року) у LuckyTemplates

Цей підручник пояснює, як обчислити місячне ковзне середнє на базі даних з початку року за допомогою функцій AVERAGEX, TOTALYTD та FILTER у LuckyTemplates.

Створення таблиці дат у LuckyTemplates

Створення таблиці дат у LuckyTemplates

Дізнайтеся, чому важлива спеціальна таблиця дат у LuckyTemplates, і вивчіть найшвидший і найефективніший спосіб це зробити.

Мобільні звіти LuckyTemplates. Поради та методи

Мобільні звіти LuckyTemplates. Поради та методи

У цьому короткому посібнику розповідається про функцію мобільних звітів LuckyTemplates. Я збираюся показати вам, як ви можете ефективно створювати звіти для мобільних пристроїв.

Звіти про професійну аналітику послуг у LuckyTemplates

Звіти про професійну аналітику послуг у LuckyTemplates

У цій презентації LuckyTemplates ми розглянемо звіти, що демонструють професійну аналітику послуг від фірми, яка має кілька контрактів і залучених клієнтів.

Оновлення Microsoft Power Platform | Microsoft Ignite 2021

Оновлення Microsoft Power Platform | Microsoft Ignite 2021

Ознайомтеся з основними оновленнями для Power Apps і Power Automate, а також їх перевагами та наслідками для Microsoft Power Platform.

Загальні функції SQL: огляд

Загальні функції SQL: огляд

Відкрийте для себе деякі поширені функції SQL, які ми можемо використовувати, наприклад String, Date і деякі розширені функції для обробки та маніпулювання даними.

Створення шаблону LuckyTemplates: керівництво та поради

Створення шаблону LuckyTemplates: керівництво та поради

У цьому підручнику ви дізнаєтеся, як створити свій ідеальний шаблон LuckyTemplates, налаштований відповідно до ваших потреб і вподобань.

Параметри полів і малі кратні в LuckyTemplates

Параметри полів і малі кратні в LuckyTemplates

У цьому блозі ми продемонструємо, як шарувати параметри поля з малими кратними, щоб створити неймовірно корисну інформацію та візуальні ефекти.