Resumo : neste tutorial, você aprenderá como usar o __init__()
método Python para inicializar atributos de objetos.
Introdução ao método Python __init__()
Quando você cria um novo objeto de uma classe , o Python chama automaticamente o __init__()
método para inicializar os atributos do objeto .
Diferentemente dos métodos regulares , o __init__()
método possui dois sublinhados (__) de cada lado. Portanto, o __init__()
é frequentemente chamado de dunder init. O nome vem abreviação dos sublinhados duplos init.
Os sublinhados duplos em ambos os lados do __init__()
método indicam que o Python usará o método internamente. Em outras palavras, você não deve chamar esse método explicitamente.
Como o Python chamará automaticamente o __init__()
método imediatamente após a criação de um novo objeto, você pode usar o __init__()
método para inicializar os atributos do objeto.
O seguinte define a Person
classe com o __init__()
método:
class Person:
def __init__(self, name, age):
self.name = name
self.age = age
if __name__ == '__main__':
person = Person('John', 25)
print(f"I'm {person.name}. I'm {person.age} years old.")
Linguagem de código: Python ( python )
Quando você cria uma instância da Person
classe, o Python realiza duas coisas:
- Primeiro, crie uma nova instância da
Person
classe definindo o namespace do objeto, como__dict__
o atributo, como vazio ({}
). - Segundo, chame o
__init__
método para inicializar os atributos do objeto recém-criado.
Observe que o __init__
método não cria o objeto, mas apenas inicializa os atributos do objeto. Portanto, the __init__()
não é um construtor.
Se __init__
tiver parâmetros diferentes de self
, você precisará passar os argumentos correspondentes ao criar um novo objeto como no exemplo acima. Caso contrário, você receberá um erro.
O método __init__ com parâmetros padrão
Os __init__()
parâmetros do método podem ter valores padrão. Por exemplo:
class Person:
def __init__(self, name, age=22):
self.name = name
self.age = age
if __name__ == '__main__':
person = Person('John')
print(f"I'm {person.name}. I'm {person.age} years old.")
Saída:
I'm John. I'm 22 years old.
Linguagem de código: JavaScript ( javascript )
Neste exemplo, o age
parâmetro tem um valor padrão de 22
. Como não passamos um argumento para Person()
, ele age
usa o valor padrão.
Resumo
- Use o
__init__()
método para inicializar os atributos do objeto. - O
__init__()
não cria um objeto, mas é chamado automaticamente após a criação do objeto.