O que é self em Python: exemplos do mundo real

O que é self em Python: exemplos do mundo real

Ao escrever aulas em Python, muitas vezes você pode encontrar o termo 'self.'É um conceito crucial que os iniciantes devem entender à medida que se aprofundam nos recursos orientados a objetos na linguagem de programação Python.

O selfparâmetro refere-se à instância atual de uma classe. Você pode usá-lo para acessar os atributos e métodos que pertencem a essa classe.

Neste tutorial do Python, exploraremos como a selfvariável desempenha um papel fundamental nas classes do Python. Também mostraremos como manter a clareza, a modularidade e a reutilização do código por meio do uso de self.

Índice

Compreendendo a si mesmo em Python

Python é uma linguagem de Programação Orientada a Objetos (OOP) que depende fortemente de classes e objetos. Portanto, antes de mergulhar no selfparâmetro, devemos primeiro entender o que é programação Orientada a Objetos.

Programação Orientada a Objetos em Python

O que é self em Python: exemplos do mundo realEscrita com giz – OOP, Programação Orientada a Objetos large-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="O que é Self em 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 300w, https://blog.enterprisedna.co/wp-content/uploads/2023/04/istockphoto-147480805-612x612-1-560x372.jpg 560w" sizes="(max-width: 709px) 100vw, 709px">

A programação orientada a objetos ajuda os programadores a modelar conceitos e relacionamentos do mundo real por meio do uso de classes e objetos. Isso resulta em um código mais estruturado, reutilizável e escalável.

Pense em uma classe como um modelo para criar objetos com propriedades e métodos predefinidos. Além disso, um objeto é uma instância de uma classe que armazena seus próprios valores para os atributos e tem acesso às funções da classe.

Esses dois conceitos são um bloco de construção importante em muitos aplicativos Python . Você pode ver classes e objetos em funcionamento neste vídeo sobre Como criar dados facilmente com a biblioteca Python Faker.

O Papel do Python Self

Self é uma referência à instância da classe em Python. Ele permite que você acesse e modifique os atributos e métodos de uma classe dentro de seu próprio escopo.

Aqui estão alguns pontos-chave sobre o uso de self em Python:

  • Selfnão é uma palavra-chave reservada na sintaxe do Python . Você pode usar outros nomes para identificar instâncias de classe, mas selfé a convenção mais amplamente usada e aceita pelos programadores Python.
  • Selfé usado como o primeiro parâmetro em métodos de instância para referenciar a instância atual da classe.
  • Você pode usar selfpara distinguir entre atributos de instância e variáveis ​​locais, tornando seu código mais legível e com menos bugs.
  • Ao chamar um método de instância, o Python passa automaticamente a instância como o primeiro parâmetro.
  • Você deve declarar o selfparâmetro no __init__() construtor e todos os outros construtores de função subseqüentes em sua classe. Não fazer isso fará com que seu programa lance um arquivo typeerror.

    Você pode ver um exemplo desse erro abaixo:

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

Observação: você pode usar o self parâmetro em funções usando o recurso de método estático fornecido pelo Python 3. Entraremos em mais detalhes sobre isso em uma seção posterior.

Trabalhando consigo mesmo

O que é self em Python: exemplos do mundo real

Aprender a usar self é muito importante para construir classes em Python. Ao longo desta seção, você aprenderá como usar self em diferentes cenários ao trabalhar com classes e objetos.

Inicializando objetos com '__init__()'

O que é self em Python: exemplos do mundo real

Ao criar uma nova instância de uma classe, o __init__() método é chamado para inicializar os atributos do objeto. O __init__() método é o construtor da classe e recebe o self parâmetro como seu primeiro argumento.

O selfparâmetro é usado dentro deste método para associar os atributos da instância aos argumentos fornecidos.

Aqui está um exemplo:

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

Neste exemplo, o método usa , e como parâmetros durante a inicialização do objeto. O parâmetro refere-se à instância da classe, permitindo que você defina os atributos e para o objeto específico que está sendo criado. init selfnameageself nameage

Usando Self em Métodos

Ao definir métodos de instância em uma classe, você deve incluir self como primeiro parâmetro. Isso permite que você acesse os atributos de instância e outros métodos dentro da classe.

Vamos expandir o exemplo anterior:

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()

Neste exemplo, o introduce()método inclui selfcomo primeiro parâmetro. Isso permite que você acesse os atributos de nome e idade do objeto e crie uma introdução personalizada.

Ao chamar o método em seu código, você não precisa passar o self parâmetro explicitamente. Python cuida disso automaticamente.

Seguindo essas diretrizes e entendendo o propósito do selfPython , os iniciantes podem trabalhar efetivamente com classes e objetos. Isso permite que eles criem um código bem estruturado, fácil de ler e manter.

Casos comuns de uso próprio

O que é self em Python: exemplos do mundo real

Há muitas maneiras de usar a palavra-chave em seu código Python. Ao entender esses casos de uso, você poderá utilizar de forma eficaz em seus programas. self self

Vejamos alguns deles:

Acessando atributos de classe

Um uso principal de selfé acessar atributos de instância dentro de uma classe. Os atributos de instância são específicos de um objeto criado a partir da classe e armazenam os dados do objeto.

Usar selfpermite manipular ou acessar esses atributos nos métodos de classe. Vejamos um exemplo:

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)

Neste exemplo, usamos self para acessar o atributo name de um objeto Dog dentro do display_name método.

Chamando métodos de classe

Outro caso de uso comum selfé chamar outros métodos de classe de dentro de um método de instância. Isso permite que você reutilize o código, reduza a complexidade e melhore a legibilidade.

É essencial usar selfao se referir a outros métodos, pois garante que o método correto seja chamado para a instância específica. Considere o seguinte exemplo:

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)

No exemplo acima, usamos selfpara chamar o show_speciesmétodo de dentro do show_infométodo. Isso nos permite exibir a espécie e a cor da ave em uma única chamada.

Por fim, lembre-se de usar selfao acessar atributos de instância e chamar métodos de classe. Depois de entender esses casos de uso, você poderá escrever um código Python mais eficiente e organizado.

Melhores Práticas Automáticas

O que é self em Python: exemplos do mundo real

Ao trabalhar com self,existem algumas convenções que você precisa seguir para evitar problemas e bugs em seu código. Aqui estão alguns deles.

Onde usar o Self

Ao definir métodos de instância, sempre use o selfparâmetro como o primeiro parâmetro. Isso permite que você acesse e modifique os atributos de instância do objeto e chame outros métodos de instância dentro da classe.

É importante usar selfao trabalhar com instâncias de objeto em Python. Usá-lo garante um comportamento consistente e permite o encapsulamento adequado do objeto.

Por exemplo, considere a seguinte classe:

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

Aqui, o parâmetro self é utilizado no __init__ método para inicializar o my_var atributo da instância do objeto. Dessa forma, torna-se um atributo específico da instância. my_var

Como resultado, ele pode ser acessado e modificado usando a auto-referência em outros métodos da classe.

Convenções de nomenclatura para si mesmo

Embora selfseja o nome convencional usado para a instância em Python, tecnicamente você pode usar qualquer nome que desejar. No entanto, é altamente recomendável que você continue usando self para maior clareza e consistência com a comunidade Python mais ampla.

Usar um nome diferente pode causar confusão para aqueles que estão lendo e trabalhando com seu código, especialmente se estiverem acostumados com convenções de nomenclatura padrão em bibliotecas Python.

Onde não usar a si mesmo

Já sabemos que o selfparâmetro fornece acesso à instância do objeto. No entanto, em alguns casos, algumas funções na classe podem não exigir acesso à instância do objeto.

Nesse cenário, o parâmetro self não é necessário. Portanto, o Python fornece um recurso de método estático para ignorar o parâmetro self:

Aqui está um exemplo:

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

No exemplo acima, o @staticmethoddecorador de função substitui o selfrequisito de parâmetro no método. Dessa forma, a função ainda será executada mesmo que nenhuma instância de objeto seja passada para ela.

Conclusão

O que é self em Python: exemplos do mundo real

Em resumo, o parâmetro self em Python refere-se à instância de uma classe e permite acessar seus atributos e métodos. Como desenvolvedor Python, é importante entender o propósito de self e seu uso em classes e objetos.

Ao usar self consistentemente em seu código, você promove a legibilidade e a manutenção, o que melhora a qualidade geral do seu trabalho.

Além disso, lembre-se de que, embora você possa ver o termo "self"usado com frequência em Python, não é uma palavra-chave reservada do Python. Isso difere de linguagens de programação como Javascript e Java , onde "this" é uma palavra-chave reservada.

Você pode nomear o primeiro parâmetro em um método de classe como quiser; self é apenas a convenção preferida.

Self é uma palavra-chave em Python? 

Há uma dúvida que sempre paira entre os programadores Python. Self é realmente uma palavra-chave em Python? 

Ao contrário de outras linguagens de programação como C++, onde self é considerado uma palavra-chave, em Python é uma convenção que os programadores tendem a seguir. É basicamente um parâmetro na definição de um método. No entanto, você pode usar qualquer outro nome no lugar de si mesmo, como outro ou eu  ou qualquer outra coisa para o primeiro parâmetro de um método. Outra razão pela qual é sugerido pela maioria das pessoas é que melhora a legibilidade do seu código. 

Vejamos um exemplo para entendê-lo: 

class minhaClasse:   def show(outro):   print(“outro é usado no lugar de si mesmo”)  

Se você comparar esse código com o código do autoconstrutor da classe Python, notará que aqui usamos o nome outro em lugar de eu. Agora vamos criar um objeto desta classe e ver o resultado: 

object = minhaClass()   object.show()

Você pode ver que o programa funciona mesmo se usarmos algum outro nome no lugar da variável self. Funciona exatamente da mesma maneira que a variável self. 


O que é self em Python: exemplos do mundo real

O que é self em Python: exemplos do mundo real

O que é self em Python: exemplos do mundo real

Como salvar e carregar um arquivo RDS em R

Como salvar e carregar um arquivo RDS em R

Você aprenderá como salvar e carregar objetos de um arquivo .rds no R. Este blog também abordará como importar objetos do R para o LuckyTemplates.

Primeiros N dias úteis revisitados - uma solução de linguagem de codificação DAX

Primeiros N dias úteis revisitados - uma solução de linguagem de codificação DAX

Neste tutorial de linguagem de codificação DAX, aprenda como usar a função GENERATE e como alterar um título de medida dinamicamente.

Apresentar insights usando a técnica de visuais dinâmicos multithread no LuckyTemplates

Apresentar insights usando a técnica de visuais dinâmicos multithread no LuckyTemplates

Este tutorial abordará como usar a técnica Multi Threaded Dynamic Visuals para criar insights de visualizações de dados dinâmicos em seus relatórios.

Introdução ao contexto de filtro no LuckyTemplates

Introdução ao contexto de filtro no LuckyTemplates

Neste artigo, analisarei o contexto do filtro. O contexto do filtro é um dos principais tópicos sobre os quais qualquer usuário do LuckyTemplates deve aprender inicialmente.

Melhores dicas para usar os aplicativos no serviço online do LuckyTemplates

Melhores dicas para usar os aplicativos no serviço online do LuckyTemplates

Quero mostrar como o serviço online do LuckyTemplates Apps pode ajudar no gerenciamento de diferentes relatórios e insights gerados de várias fontes.

Analisar alterações de margem de lucro ao longo do tempo – Analytics com LuckyTemplates e DAX

Analisar alterações de margem de lucro ao longo do tempo – Analytics com LuckyTemplates e DAX

Aprenda a calcular suas alterações de margem de lucro usando técnicas como ramificação de medida e combinação de fórmulas DAX no LuckyTemplates.

Ideias de materialização para caches de dados no DAX Studio

Ideias de materialização para caches de dados no DAX Studio

Este tutorial discutirá sobre as ideias de materialização de caches de dados e como elas afetam o desempenho dos DAXs no fornecimento de resultados.

Relatórios de negócios usando o LuckyTemplates

Relatórios de negócios usando o LuckyTemplates

Se você ainda estiver usando o Excel até agora, este é o melhor momento para começar a usar o LuckyTemplates para suas necessidades de relatórios de negócios.

O que é o Gateway do LuckyTemplates? Tudo o que você precisa saber

O que é o Gateway do LuckyTemplates? Tudo o que você precisa saber

O que é o Gateway do LuckyTemplates? Tudo o que você precisa saber