Bem vindo de volta.
No vídeo anterior, mostrei como chamar um método de uma subclasse da classe pai.
Portanto, em nosso caso, fizemos um ataque ao usuário.
Para executar o método de ataque e o usuário, agora removi o método de ataque porque quero tentar
algo diferente.
Eu quero criar uma função init aqui e esta função init assumirá a si mesma.
E então digamos que o usuário receberá, digamos, um e-mail.
Porque todos os usuários do nosso jogo precisam ter e-mails.
E aqui, diremos apenas e-mail com pontos próprios.
Ligaremos para o e-mail.
Bom e simples.
Agora aqui.
Se eu fosse executar este código e vamos remover os dados do usuário tac por enquanto, temos o mesmo assistente que
acabamos de adicionar ou, desculpe, este init.
E nós temos nosso assistente um, então se eu executar o Assistente aqui e digamos que queremos executar o Assistente um ponto e-mail.
Se eu clicar, corra.
Hmm, recebo o objeto Wizard sem atributos de e-mail.
Hmm, mas eu pensei que o usuário seria chamado quando criarmos o assistente, certo, quando instanciarmos o assistente
um.
Bem, a questão é que, embora possamos herdar, digamos, por exemplo, se eu fizer isso,
podemos herdar o.
Entrar.
Do usuário, e se eu clicar em executar, vemos que herdamos que o assistente já tem uma função Init, já
é um construtor, certo?
Então, como podemos resolver isso?
Bem, uma maneira é apenas adicionar e-mail aqui, certo, e ter apenas o e-mail.
Atributo bem aqui, mas qual é o problema com isso?
Bem, é ineficiente, certo?
Porque se eu criar uma classe de arqueiro, terei que fazer a mesma coisa.
E sabemos que todos esses atributos serão os mesmos em todas as nossas subclasses.
Queremos fazer isso aqui.
Qual é a maneira mais eficiente de fazer isso?
Bem, queremos chamar o método init do usuário de dentro daqui, certo, porque toda vez
que instanciamos um novo Wizzard, bem, essa função init vai ser chamada.
Portanto, a maneira de fazer isso é dizer o ponto do usuário.
Sublinhado, sublinhado nele.
E então dê a si mesmo.
E então e-mail.
E então o e-mail é algo que passamos.
Então, se eu descesse aqui, posso dizer.
Merlin no Gmail ponto com vai ser o e-mail.
Então agora se eu fizer, digamos.
E-mail DOT para o Wizzard um e clico em Executar.
Eu recebo o e-mail de Merlyn mais uma vez, tudo o que fizemos foi chamar o método Init.
Do usuário dentro do assistente.
Portanto, quando instanciamos um novo assistente, executamos essa função e, dentro dela, executamos esse
usuário e passamos o e-mail que passamos como argumento.
E aqui.
Agora, esta é uma maneira de fazer isso, e há outra maneira, e é chamada de super e é uma
palavra-chave.
Como você pode ver, está sendo destacado aqui e tudo o que fazemos é rodar super.
E Super está se referindo à superclasse ou à classe acima do Wizzard, que é o usuário, e esta é na verdade
uma nova adição do Python, dois pontos para.
Com o super, não precisamos mais de nós mesmos, então nosso código parece ainda mais limpo e tudo o que passamos é isso
e, se clicarmos, execute.
Ainda recebemos a resposta certa, super.
Permite que nos referamos ao usuário desta forma e não precisamos nos preocupar em passar por nós mesmos.