Python 101: Programação orientada a objetos para iniciantes | Naser Jamal | Skillshare

Velocidade de reprodução


1.0x


  • 0.5x
  • 0.75x
  • 1x (Normal)
  • 1.25x
  • 1.5x
  • 1.75x
  • 2x

Python 101: Programação orientada a objetos para iniciantes

teacher avatar Naser Jamal, Computer Engineer

Assista a este curso e milhares de outros

Tenha acesso ilimitado a todos os cursos
Oferecidos por líderes do setor e profissionais do mercado
Os temas incluem ilustração, design, fotografia e muito mais

Assista a este curso e milhares de outros

Tenha acesso ilimitado a todos os cursos
Oferecidos por líderes do setor e profissionais do mercado
Os temas incluem ilustração, design, fotografia e muito mais

Aulas neste curso

    • 1.

      Introdução de programação orientada a objetos

      0:37

    • 2.

      Aulas e objetos

      7:56

    • 3.

      Herança

      9:32

    • 4.

      Métodos estáticos, métodos de curso, atributos de classe

      6:09

    • 5.

      Como importar os cursos

      2:54

  • --
  • Nível iniciante
  • Nível intermediário
  • Nível avançado
  • Todos os níveis

Gerado pela comunidade

O nível é determinado pela opinião da maioria dos estudantes que avaliaram este curso. Mostramos a recomendação do professor até que sejam coletadas as respostas de pelo menos 5 estudantes.

133

Estudantes

--

Projetos

Sobre este curso

Neste curso de Python, vamos aprender tudo sobre Programação Orientada a Objetos (OOP) em

Python.OOP não é tão difícil de dominar como parece no início, então aperte para uma jornada de aprendizado 100% prática!

O que você aprenderá

  • Os princípios da Programação Orientada a Objetos (OOP) usando Python.
  • Como os elementos da Programação Orientada a Objetos funcionam nos bastidores.
  • Entenda como funcionam os cursos e como você pode criar instâncias a partir dos cursos.
  • Implementar e chamar métodos. Entenda seu propósito dentro dos cursos.
  • Defina atributos de instância e atributos de classe. Aprenda suas diferenças.
  • Use "self" para se referir a instâncias. Saiba como funciona nos bastidores.
  • Trabalhe com herança para reutilizar código, melhorar o design e evitar repetição.

Porque é que você iria fazer este curso?

  • Você quer estruturar seu código e torná-lo mais reutilizável?
  • Você quer elevar suas habilidades de programação em Python sem gastar muito tempo?
  • Você já foi confuso pelo tópico Programação Orientada a Objetos e queria um guia de aprendizado passo a passo detalhado?

 

Conteúdo e visão geral

Com palestras em vídeo de alta qualidade, você vai aprender e trabalhar com esses conceitos:

  • Cursos
  • Instâncias
  • Atributos de instância
  • Atributos de classe
  • Métodos
  • O parâmetro 'self'
  • Herança
  • ..e muito mais!

Requisitos

  • Nenhum conhecimento de programação é necessário.
  • Não há necessidade de instalar python, você pode usar compiladores Python online.
  • Sistema operacional Windows/Linux/MacOS.

Conheça seu professor

Teacher Profile Image

Naser Jamal

Computer Engineer

Professor

Hello, I'm Naser.

I try to simplify complicated programming topics and present them into short and bite-sized videos!

Visualizar o perfil completo

Level: All Levels

Nota do curso

As expectativas foram atingidas?
    Superou!
  • 0%
  • Sim
  • 0%
  • Um pouco
  • 0%
  • Não
  • 0%

Por que fazer parte da Skillshare?

Faça cursos premiados Skillshare Original

Cada curso possui aulas curtas e projetos práticos

Sua assinatura apoia os professores da Skillshare

Aprenda em qualquer lugar

Faça cursos em qualquer lugar com o aplicativo da Skillshare. Assista no avião, no metrô ou em qualquer lugar que funcione melhor para você, por streaming ou download.

Transcrições

1. Introdução à programação orientada ao objeto: Bem-vindo à programação completa orientada a objetos na masterclass Python. Se você está aprendendo Python e quer levar suas habilidades de programação para o próximo nível. E esta aula é para você. Você não precisa de nenhum conhecimento prévio para começar. Então, para que serve a programação orientada a objetos? Você pode perguntar, o OOP é usado em ciência da computação para implementar estruturas de dados. Também é usado em desenvolvimento web, bancos de dados, ciência de dados, inteligência artificial, desenvolvimento de jogos, interfaces gráficas de usuário e muito mais. Nesta classe, você aprenderá todos os fundamentos da programação orientada a objetos em Python e os aplicará para criar aplicativos. Então, vamos começar. Vamos? 2. cursos e objetos: Olá e seja bem-vindo de volta ao meu vídeo. Hoje vamos dar uma olhada na programação orientada a objetos em Python, ou em outras palavras, o p. Com a programação orientada a objetos, você pode criar suas próprias classes personalizadas para atender às suas necessidades e usar essas classes através de objetos. Então, o que realmente é um objeto? Você ficará surpreso que você possa estar usando objetos no dia a dia sem saber. Então, aqui está um exemplo de objetos que estamos usando diariamente se imprimirmos o tipo de um inteiro, por exemplo, isso é o que vamos conseguir. Como você pode ver, diz número inteiro de classe. Portanto, esse número que digitamos aqui é um objeto da classe e semelhante a uma string. A palavra matemática aqui é um objeto da string de classe. Da mesma forma, quando criamos uma função, estamos realmente apenas criando um objeto dessa classe original chamada função, por exemplo. Então agora estabelecemos que a maioria das coisas que usamos em Python são objetos de sua própria classe. Então, vamos aprender a criar nossas próprias aulas com suas próprias funcionalidades. Então, vamos criar uma classe e sua forma mais simples. É sempre recomendável colocar em maiúscula a primeira letra no nome da nossa classe, que neste caso é cat. Se quisermos usar essa classe, temos que criar um objeto dessa classe. Então c1 é o nome do objeto e ele está chamando a classe Cat. E vamos sentar nele e ver como se parece. Esta classe de gatos quase não faz nada além da impressão. Eu sou um gato, o que realmente não é tão útil. Esperamos que nossa classe leve nomes, idades dos usuários fazem coisas, etc. É por isso que o método init entra em jogo. Todas as classes têm um método chamado init, que sempre é executado quando a classe está sendo iniciada. Usaremos o método net para atribuir atributos ou outras operações necessárias quando o objeto estiver sendo criado. Por exemplo, se eu quisesse criar uma classe de uma pessoa, eu queria ter valores como nome e idade. Então, definimos uma classe nomeada pessoa. Agora definimos o método net. Como você pode ver, é um padrão nas classes que python grava automaticamente a coisa toda. Para mim, o auto-argumento é uma referência à instância atual da classe e é usado para acessar variáveis de classe. Agora, vamos adicionar argumentos à nossa classe. Agora, vamos usar nossa classe criando um objeto. Como você pode ver quando eu passar o mouse sobre os parênteses, ele diz que parâmetro, idade e nome não estão preenchidos. Então, vamos preenchê-los, respectivamente. Lembre-se, é muito necessário escrever auto ponto antes de atribuir nome e borda de nossas variáveis. Agora vamos adicionar outro método à nossa classe, o método que imprime detalhes sobre a pessoa. Agora que definimos P1, P2 e P3 como um objeto de nossa classe. Eles podem usar seu método, obter detalhes. Então, o que acontece se criarmos um futuro antes sem atribuir as variáveis necessárias como nome e borda, teremos um erro dizendo que está faltando os dois argumentos necessários. Então você pode estar perguntando, por que o método init é tão especial? Por que temos que defini-lo por padrão toda vez que criamos uma classe? Porque, por natureza, quando digitamos P é igual a pessoa, esperamos preencher os detalhes lá imediatamente e, em seguida, usar qualquer método na classe. Por exemplo, se comentamos e isso, o que basicamente o torna agora invisível para o nosso programa, como você pode vê-los agora para transformar um argumento inesperado. Então, agora temos que criar um método inteiro que recebe entradas do usuário. Por exemplo, agora teremos que remover os argumentos e inseri-los através do método de inserção de detalhes. Agora podemos usar o método get details. Portanto, não só isso é confuso para o usuário em todos que estão lidando com esse código. Também é demorado. E se alguma coisa, as aulas deveriam fazer era encurtar o tempo necessário para fazer as coisas. Então, o método net é necessário? Na verdade não, a classe funciona bem sem ela, mas com certeza ajuda muito. Portanto, esse é o código sem o método net, e este é o código que adicionaria método. Então, para recapitular, criamos a classe chamada Person e demos a ela os seguintes atributos, nome e idade. Definimos métodos em nossa classe para dar algumas funcionalidades, como obter detalhes. E então criamos objetos dessa classe chamados V1, V2, V3, e preenchemos os parâmetros necessários e usamos o método get details. Então, vamos tentar outro exemplo. Digamos, por exemplo, criamos uma aula de cães e gatos, ou eles tomam nome e idade? Então, vamos removê-los. Obviamente, podemos criar um objeto a partir dessas classes. Se você notar que ambas as classes são quase idênticas, com a única diferença é que elas imprimem strings diferentes. Então, tivemos que escrever duas vezes quando poderíamos ter escrito uma classe geral dos pais que inclui as informações genéticas sobre cada animal, por exemplo. Mas como vinculamos essas aulas? Você pode perguntar, como você permite que as aulas de gatos e cães herdem atributos do animal de classe mais geral simplesmente abrindo parênteses e digitando a classe de equilíbrio que vamos adicionar, neste caso animal. Agora, as classes de gatos e cães herdaram o método init do animal da classe pai, e não precisamos mais especificá-lo a cada vez. Então, vamos em frente e removê-los. Agora. Vamos usar nossos métodos e garantir que eles estejam funcionando bem. Portanto, não apenas tornamos nosso código mais curto, mantendo os mesmos recursos, mas agora podemos adicionar métodos que se aplicam às aulas de gatos e cães sem ter que adicioná-los especificamente a gatos e cães, por exemplo. Agora vamos usar esse método, cat, por exemplo. Oh, eu esqueci de adicionar um t aqui. Mesmo que não tenhamos definido esse método na classe cat, o cat ainda herda esses métodos de seu animal de classe pai. Então é isso para o básico. No próximo vídeo, analisaremos mais de perto a herança e os diferentes tipos dela. Então é isso para o vídeo de hoje. Muito obrigado por assistir e espero vê-lo no próximo. 3. Herança: Olá e seja bem-vindo de volta ao meu vídeo. Hoje vamos dar uma olhada nos tipos de herança e programação orientada a objetos em Python. Então, por que a herança é útil e biofilme, ela retrata com precisão as relações do mundo real. Ele permite a reutilização de código. Não precisamos reescrever o mesmo código repetidas vezes. Ele nos permite adicionar novos recursos à nossa classe sem ter que alterá-lo. É de natureza transitiva, o que implica que, se classe B herdar de outra classe a, todas essas subclasses herdarão automaticamente da classe a. Com isso em mente, vamos dê uma olhada em diferentes tipos de herança, começando com herança única. Então, digamos, por exemplo, eu queria criar uma classe country que representasse o Canadá. Eu teria uma classe de pais chamada Canadá. Agora vamos criar uma classe infantil que herda do Canadá chamada Ottawa. Como Ottawa é uma cidade e parte do Canadá, todos os recursos que forem adicionados ao Canadá devem ser aplicados automaticamente ao automóvel. Agora vou criar um objeto da classe infantil Ottawa e usar sua cidade método. Como Auto como uma classe filho do Canadá, também posso usar o nome do país do método sem ter que defini-lo dentro do O2. Então, por exemplo, o segundo tipo é herança múltipla. E herança múltipla, as feições de todas as classes base são herdadas na classe derivada. Então, vamos criar duas aulas de pais, mãe e pai. Agora, criaremos um cluster filho herdado dessas duas classes. Agora, vamos criar um objeto da classe sun e usar recursos de sua classe pai. Como você pode ver, pudemos usar o nome do pai e o nome da mãe, mesmo que eles não estivessem definidos no sol da nossa classe. E isso porque herdamos esses nomes das duas classes, mãe e pai. O terceiro tipo é herança multinível. Herda os recursos de classe base e de classe derivada para a classe recém-derivada. Então, vamos ver um exemplo. Observe que em ambas as classes filho invocamos o construtor da classe pai. Agora, vamos criar objetos de nossas classes e começar a usá-los. Então, a razão pela qual passamos três parâmetros é porque a classe do sol leva três nomes. Como você pode ver, o código funciona muito bem. Então, o que acontece se removermos invocando o construtor da classe Avô? Como você pode ver, o código quebra. O quarto tipo é herança hierárquica. É uma situação em que a classe balanceada é herdada por várias subclasses. Agora temos um copo de barões com duas aulas infantis. Lembre-se, essas duas classes derivadas podem usar as funções e recursos da classe de seus pais. No entanto, o filho não pode usar funções do canal dois. Até agora, tudo bem. Eles podem usar os recursos da classe dos pais e seus próprios recursos. No entanto, no momento em que tentamos usar uma função da criança um e criança dois, teremos um erro. E, finalmente, o quinto tipo, herança híbrida. Neste tipo, recursos de mais de um tempo de herança são misturados para formar herança híbrida. Então, vamos ver um exemplo. Agora vamos criar objetos de nossas classes. Finalmente, vamos ver como poderíamos juntar tudo isso e criar um programa de calculadora usando funções de programação orientadas a objetos, instruções f e loops while. Primeiro, vamos criar uma classe de calculadora para incluir todas as nossas operações matemáticas. Agora precisaremos criar um objeto para nossa calculadora de classe para que possamos começar a usá-lo. Agora vamos criar um loop while e configurá-lo como true e solicitar que o usuário insira a operação matemática desejada. A vantagem de usar o loop while aqui é que este programa continuará em execução a menos que o usuário escolha cinco, que neste caso teremos que fazer uma declaração F dizendo que a escolha F é igual a cinco, em seguida, quebra, o que quebrará o loop. De qualquer forma, vamos continuar com nosso programa e criar uma lógica para ele usando instruções f. Isso garantirá que o usuário tenha inserido uma opção válida. Primeiro, vamos verificar se o usuário quer sair ou não. Caso contrário, vamos pedir a entrada do usuário para seguir em frente com os cálculos. Agora vamos criar uma instrução F LF para corresponder à sua escolha. Vamos começar adicionando nosso programa e veja como ele se parece. Então pressionamos F5, ele deve sair. Mas nosso programa ainda não é perfeito. Se o usuário inseriu, a string receberá um erro de valor porque wife e não conseguiu converter uma string em um número inteiro. Então, vamos colocar nossas habilidades de manipulação de exceções para usar e lidar com esse adulto. Como você pode ver, isso funciona lidando com nosso erro, mas não executa novamente o programa para nós. Para isso, podemos simplesmente copiar colar o código sob o bloco exceto para que, quando ele for executado, ele também execute nosso código. Agora, é claro, existem falhas nesse método. Por exemplo, se o usuário inserir uma string outra vez, você receberá um erro porque esperamos que ele manipule a célula apenas uma vez. É aqui que a nova tentativa entra em jogo, mas não queremos desviar muito o vídeo. Então, acabamos de configurar isso. Em conclusão, você realmente não precisa ser limitado por um certo estilo manuscrito tanto quanto você deve se concentrar em manter seu código estruturado. O que significa que você deve seguir sua própria estrutura que atenda às suas próprias necessidades. Então é isso para o vídeo de hoje. Muito obrigado por assistir e espero vê-lo no próximo. 4. Métodos estáticos, métodos do curso, atributos do curso: Olá e seja bem-vindo de volta ao meu vídeo. Hoje vamos dar uma olhada em métodos estáticos, métodos classe e atributos, começando com atributos de classe. Então, o que são atributos de classe? Um atributo de classe é uma variável que pertence a uma classe em vez de um objeto específico. Então, vamos dar um exemplo. Então, agora nós criamos uma classe de animais simples, então, irá iniciarmétodo no qual você passa o nome do animal. Então, vamos criar uma instância dessa classe. Você pode estar perguntando, o que é essa variável aqui, número de animais? Bem, este é um atributo de classe. E imediatamente o que o torna um atributo de classe é que ele não usa nome próprio. Então, qual é a diferença entre essa classe, atributo, número de animais e algo como nome, por exemplo, um nome muda de instância para instância. Por exemplo, A1 terá um nome diferente do A2. No entanto, tanto A1 quanto A2 terão o mesmo número de animais, número de animais. Não depende de uma instância. Então, por exemplo, tanto que eu poderia derivar o animal, esses animais, e eu ainda obteria os mesmos resultados. O que significa que posso acessar esse atributo de classe a partir da própria classe sem ter criar uma instância como esta aqui. Então, agora que estabelecemos que o número de animais é um atributo de classe que se aplica a toda a classe. O que podemos fazer com ele? Primeiro, podemos acompanhar quantas instâncias de nosso animal de classe foram criadas ordem, seja, quantos animais temos. Por exemplo, observe que usamos o animal não mesmo, caso contrário, teria nos dado resultados diferentes. Então essa é a ideia básica por trás dos atributos de classe. Há alguns usuários para eles, é claro, como poder definir uma constante que você deseja usar para qualquer instância dessa classe. Então, por exemplo, você teve uma aula de física com Lightspeed obviamente sendo uma constante. Em vez de defini-lo fora da sua classe como uma variável global. Em vez disso, você pode defini-lo dentro da sua classe como um atributo de classe para que você possa acessá-lo mais facilmente. Então, por que isso é uma abordagem melhor? Sempre queremos garantir que suas aulas sejam tão independentes quanto possível. Ou seja, se você usasse essa classe em outro lugar em algum momento, ela tem todos os seus métodos e variáveis predefinidos dentro dela e prontos para serem usados em outro lugar. É assim que você pode usar atributos de classe a seu favor, criando qualquer variável que você possa precisar dentro da classe, em vez de criá-la fora como uma variável global. Agora vamos falar sobre métodos de classe. Então lembre-se de como incrementamos um número de animais aqui. Toda vez que uma instância do animal de classe foi criada, podemos fazer isso um pouco definitivamente usando o método de classe. Então, vamos criar um método de classe e ver como ele se parece. Como você pode ver, usamos TLS em vez de si mesmo. Agora vamos devolver o número de animais. O que também precisamos fazer é usar um decorador de classe para denotar que este é realmente um método de classe. Então, agora criamos um método de classe que retorna o número de animais. Precisamos de um método de classe que adicione mais um depois que um animal ou uma instância for criado. Então, vamos criar outro método de classe. Então, como podemos usar o método da classe Add animals? Por exemplo, podemos remover animal esse número de animais do nosso método init e substituí-lo por animais ad. Agora, o que isso fará é chamar o método de classe adicionar animais todas as vezes. E foi chamado, o que significa que toda vez que uma instância do animal de classe tiver criado como A1, A2, ele usará o método de classe e os animais. Então, vamos ver se isso funciona usando o método de classe num animals, ele deve retornar. Então, foram métodos de classe. Vamos dar uma olhada nos métodos estáticos. Aqui estão algumas das características dos métodos estáticos. Primeiro, está vinculado à classe. Ele não pode modificar um estado de classe ou objeto e não pode acessar ou modificar a classe e suas variáveis de instância. Então, às vezes, quando estamos criando um programa de calculadora, tendemos a definir métodos como você poderia definir esses métodos dentro de uma classe e tê-los como métodos estáticos. Então, por exemplo, agora podemos usar o decorador de classe para denotar que este é um método estático. Para usar esses métodos, em vez de criar uma instância da calculadora de classes, poderíamos acessá-los imediatamente usando a calculadora. Portanto, para esses métodos, não preciso criar uma instância da calculadora de classes como essa. E, em seguida, use C1. Oh, desculpe. Eu poderia usar a calculadora imediatamente sem ter que criar uma instância. Concordo que alguns podem dizer: Bem, você poderia ter definido esses métodos globalmente e usado anúncio imediatamente em vez de calculadora, como por exemplo. Existem algumas complicações nisso. E é principalmente para manter seu código mais estruturado e organizado. Então é isso para o vídeo de hoje. Muito obrigado por assistir e espero vê-lo no próximo. 5. Cursos de importação: Olá e seja bem-vindo de volta ao meu vídeo. Hoje vamos dar uma olhada em diferentes métodos. Você pode importar classes até o programa, começando com o método mais simples no qual o arquivo ou classe que você está importando está dentro do espaço de trabalho ou diretório. Então aqui temos dois arquivos Python, men e test. Ambos estão no mesmo diretório. Então, temos uma classe, um teste essa torta que queremos usar em main.py. Então, como você pode ver, test.py tem uma classe chamada calculadora e queremos importar isso. E para comprar, para fazer isso, faremos o seguinte. Primeiro, importaremos o nome do arquivo. Nesse caso, é teste. Então, vamos em frente e abortar o teste. Em seguida, para usar a classe, assim como qualquer outra classe, você terá que criar uma instância de um objeto dessa classe. Então, vamos criar uma instância de teste. Como você pode ver quando eu digito ponto, isso me mostra que há uma classe chamada calculadora que devo escolher para começar a usá-lo. Então, vamos escolher a calculadora. Agora, assim como qualquer instância, podemos seguir em frente e usar seus métodos e atributos. Como você pode ver, funciona muito bem. Observe que tive que digitar o nome do arquivo que é teste e, em seguida, escolher uma determinada classe dentro desse arquivo, que tem calculadora. Isso significa que eu poderia ter várias classes dentro do arquivo de teste que eu poderia escolher. Por exemplo. Agora vamos usar a aula de física. Então isso pressupõe que a classe que estamos importando esteja dentro do nosso diretório. O que acontece se eu quiser importar um arquivo na classe na minha área de trabalho, por exemplo. Para fazer isso, primeiro importaremos o sucesso. Em seguida, vamos digitar o caminho do ponto CIS. Em seguida, digitaremos o local do arquivo que importaremos. Podemos saber a localização do phi indo para o arquivo em si. Clique com o botão direito do mouse e clique em Propriedades. Agora vamos importar o arquivo em si, que é o arquivo de teste. Agora, para começar a usá-lo como qualquer classe, precisamos criar uma instância dela. Então eu importei a matemática da classe e uso o método add para saber qual classe e métodos temos em nosso arquivo. Simplesmente podemos abri-lo usando o Bloco de Notas. Então, o que fizemos é importante. Em seguida, o arquivo de teste final criou uma instância da matemática da classe por meio do arquivo de teste. Em seguida, usamos o método add dentro dessa classe. Então é isso para o vídeo de hoje. Muito obrigado por assistir e espero vê-lo no próximo.