Solucionado (ver solução)
Solucionado
(ver solução)
1
resposta

Tratamento de exceção

Olá,

No vídeo sobre exceção, há 2 linhas que tive dúvida:

1) class ArgumentoInvalidoError(Exception): Nas classes criadas até então, a palavra "Perfil" era inserida dentro dos parênteses. Fazendo um paralelo entre essa classe e a classe ArgumentoInvalidoError(Exception), como devo interpretar o argumento "Exception" dentro dos parênteses?

2) def __str__(self): Até então o "__" tinha sido usado no construtor e nos atributos. Para que ele é utilizado no método?

1 resposta
solução!

Oi, Roger! Vamos lá:

1 - Esse argumento passado no parâmetro da definição da classe é apenas a forma como o Python trabalha com o conceito de herança. Ou seja, quando fazemos class MinhaClasse(Perfil), estamos dizendo para a classe MinhaClasse herdar os métodos e os atributos da classe Perfil, para eles ficarem disponíveis também em MinhaClasse. Basicamente, estou dizendo que MinhaClasse é um Perfil. A classe ArgumentoInvalidoError, entretanto, é uma exceção que estamos querendo criar, não um perfil (por isso não herda de Perfil). As exceções no Python, por sua vez, têm que herdar da classe mais básica Exception para funcionarem corretamente :D.

2 - Bem observado, Roger! Esse estilo de nomeação __nomedométodo__ é característico de alguns métodos especiais, como o __init__() (o construtor) e, nesse caso, o __str__(), chamado quando usamos a função str(). Aqui tem uma lista desses métodos, se você quiser dar uma olhada :D!

Abraços e bons estudos!