A programação orientada a objetos nos permite criar objetos que possuem seus próprios métodos, como run.
E atributos.
Propriedades.
É uma ótima maneira de adicionar mais funcionalidade a uma linguagem e imitar o mundo real, por exemplo, usamos a ideia de
trabalhar para uma empresa de jogos.
Embora o Python tenha nos fornecido apenas alguns tipos de dados, fui capaz de criar um personagem de jogador.
E agora meu chefe está feliz porque esse personagem pode ser usado em todo o jogo.
E tudo o que os outros programadores precisam fazer é executar essa linha com o nome personalizado e a idade do personagem.
Portanto, o OP nos permite escrever código que é repetível, bem organizado e também eficiente em termos de memória.
Certo, porque só escrevemos isso uma vez.
Então se você quer ser um grande desenvolvedor, OP é algo que você precisa
saber e entender porque, bem, é assim que você quer organizar seu código, pensando
menos procedimental e pensando mais em termos de funcionalidade, agrupando dados como atributos, junto com métodos para criar esta
classe que é capaz de imitar algo do mundo real.
Agora, quero mostrar a você uma ferramenta útil aqui.
Vimos que quando faço o player Dot, meu editor me mostra o que tenho disponível, as propriedades, bem como essas
caixas roxas, que são os métodos que tenho disponíveis.
E logo de cara, você vê que eu tenho um nome e corro, mas depois tenho todos esses outros que
recebi por padrão.
Agora, todos esses são Dundar ou métodos mágicos que vamos abordar.
Mas a chave aqui é que se eu fizer algo como ajudar, que é uma função nova que você
talvez não tenha visto antes, vamos comentar isso.
Se eu clicar, corra.
Na verdade, obtenho, bem, todo o projeto do objeto.
Se eu fizer algo como uma lista.
E eu clico em correr.
Novamente, ele mostra o blueprint que possui e esta é uma ótima maneira de ver o blueprint de classe de alguns tipos
de dados Python.
Agora, isso é algo que revisitaremos mais tarde.
Mas eu quero voltar a este personagem do jogador agora aqui, vimos que somos capazes de criar atributos
e atributos são pedaços de dados que são dinâmicos.
Ou seja, quando instanciamos um objeto, eles serão exclusivos para aquele objeto específico, como nome e
idade.
E tivemos que usar essa palavra-chave para ter certeza de que era dinâmico.
No entanto, há outra coisa chamada atributo de objeto de classe, e pode ser parecido com isto, digamos que tínhamos o
personagem do jogador e eles tinham que, digamos, ser um membro pagante para jogar este jogo.
Você tem que ter jogado ou tem que ter uma assinatura.
Portanto, vamos ter uma associação igual.
Verdade.
Atributo agora, ao contrário deste, você vê que está na mesma linha que nossos métodos e isso é
chamado de objeto de classe.
Na realidade.
E um atributo de objeto de classe, ao contrário desses atributos de classe regulares, é diferente porque, bem,
não é dinâmico, é estático.
Então, se eu clicar.
Execute aqui e queremos ter certeza de que imprimiremos algo, então vamos imprimir o player para.
E eu clico em correr.
Bem, eu recebo o jogador, isso é ótimo, mas se eu fizer a assinatura ponto.
E eu clico em correr.
Olha só, eu ganho igual a mastigar se eu fizer o jogador um aqui.
Também, e clico em correr.
Eu consigo entender para que todos os jogadores tenham a adesão definida como verdadeira, mas isso não é dinâmico.
É um atributo de objeto de classe, o que significa que é um atributo real nesta classe.
E isso é algo que usamos quando não há mudanças.
Isso será verdade e existirá para todos os objetos, então você não pode realmente modificá-lo, apenas todos os objetos que
instanciamos terão acesso a ele.
Portanto, isso não muda entre as instâncias e podemos usar isso aqui também ou em qualquer lugar neste projeto de
classe, na verdade.
Por exemplo, digamos que queremos verificar se.
A associação existe, então estamos verificando se a associação é verdadeira.
O que quero dizer, sempre é.
Então, isso é um pouco redundante, mas aqui.
Só posso dizer se a adesão for verdadeira, então irei atribuir um nome e idade, mas para que possamos acessar a
adesão, terei que fazer a própria adesão Dorte porque lembre-se, Auto refere-se a este personagem do jogador para
que se eu executar isso.
Tudo ainda funciona, e se eu fizer jogador um nome de ponto.
Isso ainda funciona, ou posso me referir a isso pelo personagem do jogador real, então personagem do jogador, associação.
Então, se eu clicar em executar aqui.
Isso também funciona porque é um atributo de objeto de classe.
Se eu fosse correr, vamos mudar isso para gritar e gritar, ele vai querer correr.
Vamos remover essa linha.
Vai ser impresso.
Uma string F que diz meu nome é.
E dê um nome, você acha que isso vai funcionar, vamos tentar, vamos dizer gritar.
E certifique-se de executar esse método e clique em gritar novamente.
Se eu clicar, corra.
Recebo um nome de ar não definido online, 11, se eu for para a linha onze aqui.
Nome não definido.
Por que é que?
Bem, porque não usamos a nós mesmos.
Então, vamos fazer o nome do ponto próprio.
E se eu clicar em executar.
Ai está.
Meu nome é Tom.
Meu nome é Cindy.
Ok, ótimo, e consigo mesmo, porque passo aqui como o primeiro parâmetro e todos os métodos recebem
o primeiro parâmetro, um self para que possamos usá-los.
Mas eu poderia apenas definir jogador, personagem, nome de domínio se clicar em executar?
Recebo um jogo aéreo, um personagem não tem nome de atributo.
Agora, por que isso?
Porque nome não é um atributo de objeto de classe.
Na verdade, não é uma propriedade ou um atributo do personagem do jogador.
Não, está definido em nossa função de construtor são funções de inicialização.
Então, isso é um problema aqui e algo que você terá que se acostumar com um atributo de objeto
de classe é algo que não muda em diferentes instâncias versus um atributo ou um atributo de classe é
algo que é dinâmico e específico para cada classe objeto.
A forma como os acessamos é diferente, onde podemos realmente acessar membros como este, mas para acessarmos um nome ou
idade em qualquer lugar dentro de nossa classe, temos que usar o nome da selfie, que é o motivo pelo
qual sempre criamos um método em uma classe, mesmo se eu criar um novo aqui e
digamos que este novo seja executado.
Bem, mais uma vez, eu tenho que usar a mim mesmo como um parâmetro e então qualquer outra coisa que eu queira adicionar.
E aqui.
Como segundo parâmetro, para quando clicar, digamos que corra.
Eu passo no.
Olá, argumento como este.
Eu sei que isso é muito, mas espero que você comece a seguir as regras das aulas assim que se lembrar
dessas regras, então ficará cada vez mais fácil.
Mas vamos praticar isso um pouco mais no próximo vídeo.