Что такое self в Python: примеры из реального мира

Что такое self в Python: примеры из реального мира

При написании классов на Python вы часто можете встретить термин « 'self.'Это важная концепция, которую должны понимать новички, когда они глубже погружаются в объектно-ориентированные функции языка программирования Python».

Параметр selfотносится к текущему экземпляру класса. Вы можете использовать его для доступа к атрибутам и методам, принадлежащим этому классу.

В этом руководстве по Python мы рассмотрим, как selfпеременная играет ключевую роль в классах Python. Мы также покажем вам, как поддерживать ясность кода, модульность и возможность повторного использования за счет использования self.

Оглавление

Понимание себя в Python

Python — это язык объектно-ориентированного программирования (ООП) , который сильно зависит от классов и объектов. Итак, прежде чем углубляться в selfпараметр, мы должны сначала понять, что такое объектно-ориентированное программирование.

Объектно-ориентированное программирование на Python

Что такое self в Python: примеры из реального мираНаписание мелом – ООП, объектно-ориентированное программирование big-file="https://blog.enterprisedna.co/wp-content/uploads/2023/04/istockphoto-147480805-612x612-1.jpg" decoding="async" loading="lazy" 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" size="(max-width: 709px) 100vw, 709px">

Объектно-ориентированное программирование помогает программистам моделировать концепции и отношения реального мира посредством использования классов и объектов. Это приводит к более структурированному, повторно используемому и масштабируемому коду.

Думайте о классе как о шаблоне для создания объектов с предопределенными свойствами и методами. Кроме того, объект — это экземпляр класса, который хранит собственные значения атрибутов и имеет доступ к функциям класса.

Эти две концепции являются важными строительными блоками во многих приложениях Python . Вы можете увидеть как классы, так и объекты в работе в этом видео о том, как легко создавать данные с помощью библиотеки 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 в качестве первого параметра. Это позволяет вам получить доступ к атрибутам экземпляра и другим методам внутри класса.

Расширим предыдущий пример:

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 позаботится об этом автоматически.

Следуя этим рекомендациям и понимая назначение selfPython , новички смогут эффективно работать с классами и объектами. Это позволяет им создавать хорошо структурированный код, который легко читать и поддерживать.

Общие случаи самостоятельного использования

Что такое 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при работе с экземплярами объектов в 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 не нужен. Итак, 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(“вместо себя используется другой”)  

Если вы сравните этот код с кодом самоконструктора класса Python, вы заметите, что здесь мы использовали имя другое в место себя. Теперь давайте создадим объект этого класса и посмотрим результат: 

объект = myClass()   object.show()

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


Что такое self в Python: примеры из реального мира

Что такое self в Python: примеры из реального мира

Что такое self в Python: примеры из реального мира

Как сохранить и загрузить файл RDS в R

Как сохранить и загрузить файл RDS в R

Вы узнаете, как сохранять и загружать объекты из файла .rds в R. В этом блоге также рассказывается, как импортировать объекты из R в LuckyTemplates.

Новый взгляд на первые N рабочих дней — решение для языка кодирования DAX

Новый взгляд на первые N рабочих дней — решение для языка кодирования DAX

В этом руководстве по языку программирования DAX вы узнаете, как использовать функцию GENERATE и как динамически изменять название меры.

Продемонстрируйте идеи с помощью метода многопоточных динамических визуализаций в LuckyTemplates

Продемонстрируйте идеи с помощью метода многопоточных динамических визуализаций в LuckyTemplates

В этом учебном пособии рассказывается, как использовать технику многопоточных динамических визуализаций для создания аналитических сведений из динамических визуализаций данных в ваших отчетах.

Введение в фильтрацию контекста в LuckyTemplates

Введение в фильтрацию контекста в LuckyTemplates

В этой статье я пройдусь по контексту фильтра. Контекст фильтра — одна из основных тем, с которой должен ознакомиться любой пользователь LuckyTemplates.

Лучшие советы по использованию приложений в онлайн-службе LuckyTemplates

Лучшие советы по использованию приложений в онлайн-службе LuckyTemplates

Я хочу показать, как онлайн-служба LuckyTemplates Apps может помочь в управлении различными отчетами и аналитическими данными, созданными из различных источников.

Анализ изменений маржи прибыли с течением времени — аналитика с LuckyTemplates и DAX

Анализ изменений маржи прибыли с течением времени — аналитика с LuckyTemplates и DAX

Узнайте, как рассчитать изменения вашей прибыли, используя такие методы, как разветвление показателей и объединение формул DAX в LuckyTemplates.

Идеи материализации кэшей данных в DAX Studio

Идеи материализации кэшей данных в DAX Studio

В этом руководстве будут обсуждаться идеи материализации кэшей данных и то, как они влияют на производительность DAX при предоставлении результатов.

Бизнес-отчетность с использованием LuckyTemplates

Бизнес-отчетность с использованием LuckyTemplates

Если вы все еще используете Excel до сих пор, то сейчас самое подходящее время, чтобы начать использовать LuckyTemplates для своих бизнес-отчетов.

Что такое шлюз LuckyTemplates? Все, что тебе нужно знать

Что такое шлюз LuckyTemplates? Все, что тебе нужно знать

Что такое шлюз LuckyTemplates? Все, что тебе нужно знать