Что такое self в Python: примеры из реального мира
Что такое self в Python: примеры из реального мира
При написании классов на Python вы часто можете встретить термин « 'self.'
Это важная концепция, которую должны понимать новички, когда они глубже погружаются в объектно-ориентированные функции языка программирования Python».
Параметр self
относится к текущему экземпляру класса. Вы можете использовать его для доступа к атрибутам и методам, принадлежащим этому классу.
В этом руководстве по Python мы рассмотрим, как self
переменная играет ключевую роль в классах Python. Мы также покажем вам, как поддерживать ясность кода, модульность и возможность повторного использования за счет использования self
.
Оглавление
Понимание себя в Python
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
, чтобы различать атрибуты экземпляра и локальные переменные, делая ваш код более читабельным и менее глючным.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
в различных сценариях работу с классами и объектами.
Инициализация объектов с помощью '__init__()'
При создании нового экземпляра класса __init__()
вызывается метод для инициализации атрибутов объекта. Метод __init__()
является конструктором класса и принимает self
параметр в качестве первого аргумента.
Параметр self
используется в этом методе для связывания атрибутов экземпляра с заданными аргументами.
Вот пример:
class Person: def __init__(self, name, age): self.name = name self.age = age person1 = Person("Alice", 30)
В этом примере метод принимает , и в качестве параметров во время инициализации объекта. Параметр относится к экземпляру класса, позволяя вам установить атрибуты и для конкретного создаваемого объекта. init
self
name
age
self
name
age
Использование себя в методах
При определении методов экземпляра в классе вы должны включить их 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 позаботится об этом автоматически.
Следуя этим рекомендациям и понимая назначение 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,
ним необходимо соблюдать некоторые соглашения, чтобы избежать проблем и ошибок в коде. Вот некоторые из них.
Где использовать себя
При определении методов экземпляра всегда используйте 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 относится к экземпляру класса и позволяет вам получить доступ к его атрибутам и методам. Разработчику Python важно понимать назначение self и его использование в классах и объектах.
Используя self последовательно в своем коде, вы повышаете удобочитаемость и ремонтопригодность, что повышает общее качество вашей работы.
Кроме того, помните, что хотя этот термин может "self"
часто использоваться в Python, он не является зарезервированным ключевым словом Python. Это отличается от языков программирования, таких как Javascript и Java , где "this"
это зарезервированное ключевое слово.
Вы можете назвать первый параметр в методе класса как угодно; " self
" - это просто предпочтительное соглашение.
Среди программистов Python всегда возникает вопрос. Является ли self ключевым словом в Python?
В отличие от других языков программирования например, C++, где self считается ключевым словом, в Python это соглашение, которому программисты склонны следовать. По сути, это параметр в определении метода. Однако вместо себя вы можете использовать любое другое имя, например другой или я или что-нибудь еще для первого параметра метода. Другая причина, по которой большинство людей рекомендуют его, заключается в том, что он повышает читаемость вашего кода.
Давайте посмотрим пример, чтобы понять это:
class myClass: def show(another): print(“вместо себя используется другой”)
Если вы сравните этот код с кодом самоконструктора класса Python, вы заметите, что здесь мы использовали имя другое в место себя. Теперь давайте создадим объект этого класса и посмотрим результат:
объект = myClass() object.show()
Вы можете видеть, что программа работает, даже если мы используем какое-то другое имя вместо переменной self. Это работает точно так же, как и переменная self.
Что такое self в Python: примеры из реального мира
Вы узнаете, как сохранять и загружать объекты из файла .rds в R. В этом блоге также рассказывается, как импортировать объекты из R в LuckyTemplates.
В этом руководстве по языку программирования DAX вы узнаете, как использовать функцию GENERATE и как динамически изменять название меры.
В этом учебном пособии рассказывается, как использовать технику многопоточных динамических визуализаций для создания аналитических сведений из динамических визуализаций данных в ваших отчетах.
В этой статье я пройдусь по контексту фильтра. Контекст фильтра — одна из основных тем, с которой должен ознакомиться любой пользователь LuckyTemplates.
Я хочу показать, как онлайн-служба LuckyTemplates Apps может помочь в управлении различными отчетами и аналитическими данными, созданными из различных источников.
Узнайте, как рассчитать изменения вашей прибыли, используя такие методы, как разветвление показателей и объединение формул DAX в LuckyTemplates.
В этом руководстве будут обсуждаться идеи материализации кэшей данных и то, как они влияют на производительность DAX при предоставлении результатов.
Если вы все еще используете Excel до сих пор, то сейчас самое подходящее время, чтобы начать использовать LuckyTemplates для своих бизнес-отчетов.
Что такое шлюз LuckyTemplates? Все, что тебе нужно знать