Що таке 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. 


Поле пошуку PowerApps: як додати та налаштувати

Поле пошуку PowerApps: як додати та налаштувати

Дізнайтеся, як створити поле пошуку PowerApps з нуля та налаштувати його відповідно до загальної теми вашої програми.

Приклад SELECTEDVALUE DAX – вибір розділювача врожаю

Приклад SELECTEDVALUE DAX – вибір розділювача врожаю

Збирайте або фіксуйте значення в мірі для повторного використання в іншій мірі для динамічних обчислень за допомогою SELECTEDVALUE DAX у LuckyTemplates.

Історія версій у списках SharePoint

Історія версій у списках SharePoint

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

Вибір шістнадцяткових кодів кольорів для звітів LuckyTemplates

Вибір шістнадцяткових кодів кольорів для звітів LuckyTemplates

Ось інструмент для створення звітів і візуальних матеріалів, засіб вибору шістнадцяткових кодів кольорів, за допомогою якого можна легко отримати кольори для звітів LuckyTemplates.

Динамічний роздільник дат у LuckyTemplates із використанням таблиці Менделєєва

Динамічний роздільник дат у LuckyTemplates із використанням таблиці Менделєєва

Ви можете легко відобразити діапазон дат як роздільник у своєму звіті за допомогою таблиці періодів. Використовуйте M-код, щоб створити динамічний роздільник дат у LuckyTemplates.

Таблиці пропорцій і частот в Excel

Таблиці пропорцій і частот в Excel

Збирався зануритися в частотні таблиці в Excel, а також у таблиці пропорцій. Добре подивіться, що це таке і коли їх використовувати.

Як інсталювати DAX Studio та табличний редактор у LuckyTemplates

Як інсталювати DAX Studio та табличний редактор у LuckyTemplates

Дізнайтеся, як завантажити та інсталювати DAX Studio та Tabular Editor 3 і як налаштувати їх для використання в LuckyTemplates і Excel.

Візуалізація карти форми LuckyTemplates для просторового аналізу

Візуалізація карти форми LuckyTemplates для просторового аналізу

Цей блог містить візуалізацію Shape Map для просторового аналізу в LuckyTemplates. Я покажу вам, як ви можете ефективно використовувати цю візуалізацію з її функціями та елементами.

Фінансова звітність LuckyTemplates: розподіл результатів за шаблонами в кожному окремому рядку

Фінансова звітність LuckyTemplates: розподіл результатів за шаблонами в кожному окремому рядку

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

Вимірювання DAX у LuckyTemplates за допомогою розгалуження вимірювання

Вимірювання DAX у LuckyTemplates за допомогою розгалуження вимірювання

Створіть показники DAX у LuckyTemplates, використовуючи наявні показники або формули. Це те, що я називаю технікою розгалуження міри.