17.5 - Método init
O método __init__
(abreviação da palavra em inglês para “inicialização”) é um método especial, invocado quando um objeto é instanciado. Seu nome completo é __init__
(dois caracteres de sublinhado, seguidos de init, e mais dois sublinhados). Um método __init__
da classe Time pode ser algo assim:
# dentro da classe Time:
def __init__(self, hour=0, minute=0, second=0):
self.hour = hour
self.minute = minute
self.second = second
É comum que os parâmetros de __init__
tenham os mesmos nomes que os atributos. A instrução
self.hour = hour
guarda o valor do parâmetro hour
como um atributo de self
.
Os parâmetros são opcionais, então, se você chamar Time sem argumentos, recebe os valores padrão:
>>> time = Time()
>>> time.print_time()
00:00:00
Se incluir um argumento, ele define hour.
>>> time = Time (9)
>>> time.print_time()
09:00:00
Se fornecer dois argumentos, hour e minute serão definidos:
>>> time = Time(9, 45)
>>> time.print_time()
09:45:00
E se você fornecer três argumentos, os três valores serão definidos.
Como exercício, escreva um método init da classe Point que receba x e y como parâmetros opcionais e os relacione aos atributos correspondentes.