Python

Por que temos que utilizar o self nos métodos do Python?

23 de junho de 2020

Por que temos que utilizar o self nos métodos do Python?

Neste artigo veremos porque temos que utilizar o self nos métodos do Python, com exemplos práticos de situações do dia a dia.

porque utilizar o self em metodos capa

Fala programador(a), beleza? Bora aprender mais sobre Python!

Um dos motivos do self, se deve a filosofia do Python de ser uma linguagem explícita e isso pode ser explicado na filosofia de código Pythonico

E isso é levado muito a sério em toda a linguagem, tanto que o guia do código Pythonico é indicado na própria documentação

Agora indo para o lado mais técnico

Python foi criada inicialmente para programação funcional e passou a ter o paradigma de Orientação a Objeto

Então quando os desenvolvedores estavam criando estas funcionalidades, decidiram que o primeiro argumento de cada método deveria ser o objeto deste

Convencionando que seria chamado de self

Podemos encontrar o self em outras linguagens também, por exemplo o this no JavaScript, só que ele está implícito

Um argumento escondido que funciona para se referenciar aquele objeto em questão

Veja um exemplo prático:

class Humano:
  def __init__(self, nome):
    self.nome = nome

  def exibirNome(self):
    print("O nome é " + self.nome)

matheus = Humano('Matheus')

print(matheus.nome)

matheus.exibirNome()

Então aqui o self nos ajuda tanto a definir propriedades referenciando para o objeto, quanto para criar métodos que utilizem uma propriedade do objeto

Conclusão

Neste artigo vimos por que temos que utilizar o self nos métodos do Python

Isso foi uma escolha no design da linguagem, para tornar implícito este argumento que referencia o objeto do método

Seguindo o padrão Pythonico da linguagem, que é uma filosofia divida em características que podem definir a linguagem Python

Confira também nosso catálogo de cursos gratuitos, com aulas semanais no YouTube

Subscribe
Notify of
guest
0 Comentários
Inline Feedbacks
View all comments
0
Would love your thoughts, please comment.x