No vídeo anterior, aprendemos que Opie é o que chamamos de paradigma, uma maneira de pensar sobre nosso código
e estrutura, nosso código.
E vou criar um link para este excelente artigo da Wikipedia sobre a história das linguagens de programação.
Veja, começamos com linguagens de programação básicas.
Temos coisas como linguagem assembly de nível muito baixo, muito próximo do código de máquina.
Tínhamos coisas como Kobel e então lentamente, conforme começamos a escrever mais e mais códigos nos anos
60 e 70, começamos a estabelecer alguns desses paradigmas fundamentais.
E um dos grandes paradigmas que surgiram, especialmente com a linguagem de programação de conversa fiada,
foi essa ideia de programação orientada a objetos ou uma linguagem orientada a objetos.
Veja, até aquele ponto, escrevemos o que chamamos de código procedural.
O que isso significa é que, se olharmos para um arquivo python, por exemplo, um código procedural é exatamente como um
procedimento.
Simplesmente tínhamos as linhas de um a, digamos, cem, e apenas passamos do topo da linha para
o final da linha, tínhamos condicionais, talvez loops, mas tudo era fazer isso, fazer aquilo.
Éramos nós dizendo à máquina, ei, apenas faça exatamente.
É isso que estou prestes a dizer com a introdução dos paradigmas orientados a objetos.
Isso mudou um pouco, começamos a dizer, ei, vamos modelar algo em nosso código que representa um objeto do
mundo real.
Por exemplo, se estou prestes a codificar um carro, eu criaria um objeto carro que contém dados sobre a cor dele, que
tipo de motor ele tem, quantos assentos ele tem, mas também ações como métodos que podemos
tomar nele, como o carro pode ir para a frente, pode ir para trás, pode abrir a porta.
E em vez de ter esse código de procedimento linha por linha, podemos pensar em termos de
modelos, projetos do mundo real, porque, como humanos, organizamos as coisas, pensamos em uma sala, pensamos em uma
fábrica organizando coisas e tendo diferentes grupos em um local específico trabalhando juntos.
Essa é a melhor maneira de pensar e também de administrar as coisas.
Então, como isso ficaria em Python?
Bem, Python é uma linguagem orientada a objetos, ou Cambie, o que significa que ela é capaz de suportar opioides, essa ideia
de objetos e modelagem e vimos isso quando usamos o tipo, vemos que tudo é um
objeto porque usamos isso palavra-chave de classe.
Mas qual é essa palavra-chave de classe em Python?
Posso criar meus próprios dados, digitar minha própria classe simplesmente dizendo class e, em seguida, posso nomeá-la como
quiser.
Digamos classe.
Grande.
Objeto.
Agora, de imediato, você vê aqui que a convenção de nomenclatura é diferente do que vimos antes.
Vamos ter certeza de que ele está com letras maiúsculas, que é o padrão que queremos que os programadores saibam que esta
será uma aula e não estamos usando o estojo da cobra.
Nós usamos o que chamamos de Comikaze, que é cada palavra nova, é uma letra maiúscula.
E então aqui usamos o Callon e aqui escrevemos nosso código.
Agora, não vou escrever o código agora, vou apenas passar.
Mas aí mesmo, acabei de criar uma nova classe para que, se eu fizer isso, digamos, por exemplo.
Modelo.
Objeto grande e clico em executar.
Bem, eu ainda consigo o tipo, porque agora o que criamos é esta classe, que é um blueprint,
mas não criamos realmente o objeto.
Eu sei que o texto pode ficar confuso, mas tenha paciência comigo.
Eu vou explicar isso.
Agora podemos criar, digamos que o objeto um seja igual a dois objetos grandes.
E então ministrar esta aula.
Assim, se eu digitar objeto aqui, objeto um e clico em executar.
Eu entendo classe, grande objeto.
Você pode ignorar o principal aqui por enquanto, porque falaremos sobre isso mais tarde, mas você vê aqui
que acabei de criar meu próprio objeto.
Agora, vamos pensar sobre o que acabou de acontecer aqui, porque é muito para entender.
Você vê uma programação orientada a objetos, há essa ideia de uma classe e um objeto, agora uma classe é
este é o projeto, o projeto do que queremos criar.
Quais são os atributos básicos?
Isso são propriedades que nossa classe tem?
Quais são alguns métodos básicos ou ações que nossa classe pode realizar?
E então, a partir desse blueprint, sou capaz de criar diferentes objetos repetidamente usando isso como o bloco de
construção.
Portanto, esse projeto é o que chamamos de classe.
Que definimos com a palavra-chave, e essa classe pode ser instanciada, que é a ação de criar
instâncias diferentes.
E quais são essas instâncias?
Todos esses são objetos.
Agora, a nomenclatura aqui é algo com o qual você terá que se acostumar,
e todas as linguagens de programação orientada a objetos têm essa linguagem, então você só terá que entender o
que alguém diz, ei, acabei de instanciar uma classe.
Significa, hey, acabei de criar uma nova instância, um novo objeto.
Então, olhando para este diagrama, vamos voltar ao código que acabamos de escrever, criamos aqui uma classe ou
um projeto.
E então aqui, este colchete duplo é nós instanciando a classe e dizendo, ei, classe, use tudo o que você
tem aqui e instancie-o e crie um novo objeto.
Portanto, estamos criando um novo objeto instanciando esta classe.
E isso é exatamente o que estamos fazendo com algo como uma lista, certo?
Posso criar várias listas indefinidamente e, sempre que crio uma lista, tenho acesso a
todos esses métodos e, às vezes, até atributos que posso usar.
E desta forma, eu economizo muito tempo ao invés de revesti-lo sozinho e da mesma forma que posso criar
vários objetos aqui objeto para.
Objeto três.
Assim mesmo, e agora tenho três objetos diferentes que posso usar com base neste projeto.
Agora, o blueprint agora não tem nada porque, bem, posso adicionar código aqui mais tarde e faremos isso
no próximo vídeo.
Mas a beleza é, vamos pensar em eficiência.
Aqui você vê o próprio projeto.
A aula será armazenada na memória.
Então o interpretador Python dirá, ei, grande objeto.
Vai ser o plano para isso.
Vou armazenar todo esse código na memória.
Mas toda vez que eu crio um objeto, não preciso reescrever o código ou fazer algo parecido.
Posso simplesmente dizer, ei, vá na memória para onde está o objeto grande e apenas execute esse código para que, novamente,
estejamos mantendo nosso código seco.
Temos um local que nos permite instanciar nosso código em objetos.
Vamos fazer uma pausa e expandir essa classe no próximo vídeo.