No Python, o self
explícito é obrigatório.
E, na verdade, é uma convenção reforçada pelo PEP 8 - Style Guide for Python Code na seção que fala sobre argumentos de métodos de instância.
Vamos dizer que temos a classe Person
abaixo:
>>> class Person(object):
def set_name(person, name):
if len(name) >= 2:
person.name = name
Repare que, ao invés de self
, está person
.
Você pode usar o método set_name
normalmente!
>>> woman = Person()
>>> woman.set_name('Juliana')
>>> print(woman.name)
'Juliana'
A questão é que virou convenção usar self
e é o que um pythonista espera!
Referência:
https://wiki.python.org.br/SignificadoDoSelf