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 self
parâ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 self
variá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 self
parâmetro, devemos primeiro entender o que é programação Orientada a Objetos.
Programação Orientada a Objetos em Python
Escrita 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:
Self
nã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.self
para distinguir entre atributos de instância e variáveis locais, tornando seu código mais legível e com menos bugs.self
parâ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
. 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
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__()'
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 self
parâ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
self
name
age
self
name
age
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 self
como 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 self
Python , 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
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 self
permite 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 self
ao 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 self
para chamar o show_species
método de dentro do show_info
método. Isso nos permite exibir a espécie e a cor da ave em uma única chamada.
Por fim, lembre-se de usar self
ao 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
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 self
parâ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 self
ao 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 self
seja 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 self
parâ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 @staticmethod
decorador de função substitui o self
requisito 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
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.
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
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.
Neste tutorial de linguagem de codificação DAX, aprenda como usar a função GENERATE e como alterar um título de medida dinamicamente.
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.
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.
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.
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.
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.
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