Você esperou muito tempo por isso porque evitei falar sobre esses métodos mágicos de Dundar por muito
tempo.
Neste vídeo, vamos finalmente descobrir o que eles fazem agora.
Podemos ver o que nossa instância tem como métodos usando o método door.
E dissemos que eles foram herdados de nossa classe de objeto base.
Agora, isso ressalta nossos métodos especiais.
Lembre-se de como temos coisas como LENTH, por exemplo, que nos permite dizer o comprimento de um array.
Na verdade, eles são implementados usando esses métodos Dundar.
Eles nos permitem usar funções específicas do Python em objetos criados por meio de nossa classe.
Então, deixe-me mostrar o que quero dizer.
Vamos criar uma nova classe e esta será uma classe de brinquedos.
Agora, aqui, vamos definir um brinquedo e inicializá-lo consigo mesmo.
Então diremos que tem cor e idade.
Agora dirá que cor é igual a cor.
Então, esses serão nossos atributos.
E H.
Incrível.
Essa é a nossa classe agora, digamos que queremos criar uma figura de ação.
Esta figura de ação será instanciada com um brinquedo, digamos a cor do vermelho e as idades, é novo, então
está próximo.
Agora, se eu usar algo como, digamos s t r que vem com este objeto, se eu usar estrela
ou figura de ação ponto sublinhado sublinhado s t r assim.
E nós imprimimos isso.
Nós vemos que entendemos isso.
É exatamente a mesma coisa que nós fazendo bonecos de ação SDR.
Assim.
Olhe para isso.
Esses métodos de Dundar com sublinhado duplo são métodos especiais que o Python reconhece.
Por exemplo, a estrela Dundar, este método especial nos permite usar figuras de ação como essa usando a
função interna da estrela.
Na verdade, se você for à documentação do Python na seção de nomes de métodos
especiais, verá que podemos fazer personalizações básicas desses métodos Dundar e é uma longa lista de todos esses métodos
Dundar que podemos usar.
Agora, não vá e leia cada um deles.
Há muitos e você não vai usá-los com frequência.
Existem apenas alguns casos específicos em que você vai usá-los.
E a ideia é saber como modificá-los e como funcionam por baixo do capô.
Então.
Vamos repassar alguns exemplos, por exemplo, vamos modificar o que o ATSDR faz, vou
definir meu próprio SDR aqui.
Eu vou chamar a mim mesmo.
E aqui, vou retornar algo diferente, vou retornar, digamos, uma string F.
Isso é, digamos, cor autodidata.
Se eu executar isso.
Eu fico vermelho.
Lembra como ele disse para não modificar os métodos de Dundar?
Bem, às vezes você pode, talvez, haja casos, casos especiais onde você deseja que sua classe
se comporte de uma determinada maneira, assim como dicionários, listas, tuplas e todos os nossos objetos em Python podem se comportar de
certas maneiras.
Como as listas foram acessadas com um número de índice e um dicionário foi acessado com a chave.
Todos eles são implementados usando esses métodos mais duvidosos.
E você vê aqui que, como modificamos isso, a estrela agora retorna uma estrela vermelha sendo chamada de figura de ação.
Isso não muda as coisas, exceto com uma figura de ação, se eu executar isso, você verá que ainda executa uma
figura de ação como esta porque é uma string.
A estrela só é modificada quando a usamos neste objeto específico.
Igual a.
Que outras coisas podemos fazer?
Bem, podemos mudar o significado do comprimento também.
Então, lenth, posso dizer eu.
E aqui, posso simplesmente voltar.
Agora, se eu imprimir.
Comprimento da figura de ação.
E eu clico em correr.
Eu recebo cinco.
Muito legal, aliás, se este sublinhado está ficando um pouco chato, o que francamente para mim está ficando um pouco chato,
vou clicar nas configurações aqui e apenas remover a inteligência do código para que não me diga quando meu
código está errado, mas espero que você possa apenas depurá-lo por conta própria.
Tudo bem.
Então, vamos lá, acabamos de alterar o comprimento Dundar para retornar cinco.
Vamos continuar experimentando, também podemos fazer algo como sublinhado, sublinhado, excluir e excluir.
Bem, vamos usar a palavra-chave delete, que na verdade não vimos antes.
Excluir.
Podemos apenas dizer "return".
Excluído.
Você tem que ir assim e vamos apenas imprimir aqui, imprimir apagado se eu clicar em executar.
Vejo que retornei deletada agora a palavra-chave delete que eu realmente não ensinei porque não é algo
que você verá com frequência.
Isso pode causar alguns bugs engraçados em nossos programas que eu gosto de evitar pessoalmente.
Mas a palavra-chave delete exclui algum tipo de variável que poderíamos ter em nosso programa.
Direito.
O que mais está lá?
Vamos mudar isso para usar algo chamado call.
E o carvão é interessante.
Digamos que com carvão, vamos voltar e vamos dizer sim, ponto de interrogação.
O legal sobre Carl é que agora ele dá à nossa classe de brinquedos algum superpoder, podemos dizer figura
de ação e então dizer, bem, com Carl, agora podemos chamar o objeto real com esses Brackett's.
Então, usando call, eu tenho essa maneira especial de chamar uma função que, a propósito, por baixo do capô,
a maneira como podemos chamar funções é usando essa chamada de Dundar.
E se eu clicar, corra.
Eu entendo sim, isso não é legal?
Tudo bem, um último, porque acho que vocês estão começando a entender isso, como eu disse,
estão todos disponíveis aqui.
Normalmente, você não deseja substituí-los, mas apenas deseja saber se tem o poder para fazer isso.
Se você escolher, o próximo é chamado de obter item.
Então vamos definir get item.
Mais uma vez, vamos usar self no primeiro parâmetro e, em seguida, digamos I para o
índice e aqui retornaremos self dot e vamos adicionar um atributo antes de adicioná-lo, vou dizer self dot my dict para meu dicionário
e, em seguida, adicione o nome.
Ele vai até você.
E vamos fazer tem pets igual a false.
Agora, usando isso, posso dizer meu.
DECT.
E devolva o item com base no índice que fornecemos.
Então, deixe-me mostrar o que quero dizer, se eu imprimir agora.
Figura de ação Ponto, e aqui, em vez de fazer o ponto, fazemos os colchetes exatamente como acessaríamos, talvez, obtendo
um item do dicionário que possamos usar agora para obter o item, diga quais propriedades temos
nome.
Então, vamos dizer o nome.
E se eu imprimir este OOP.
Esqueci de adicionar uma vírgula aqui.
Vamos tentar de novo.
E se eu rolar para baixo, você pode ver que sou muito bom em ler erros, a figura de ação do nome Namir não está
definida porque é a figura de ação, não Fugere.
Assim é melhor, olha só, meu nome, Yo-Yo, estava conseguindo acessar usando esta notação de
colchetes usando o item get Dundar muito, muito legal.
Portanto, esses métodos mágicos especiais são realmente interessantes porque nos permitem fazer algumas bem, algumas modificações
personalizadas de nossas classes.
E você também pode entender como em Python os tipos padrão embutidos têm acesso e habilidades para ter todas
essas sintaxes especiais.
Agora também temos esse poder.
Vamos fazer uma pausa e fazer um pouco de exercício.