1
resposta

Aula 1 - Aula Utilizando Python 3

Olá, gostaria de saber se terá alguma adaptação de Design Pattern utilizando Python 3. Estou fazendo o curso na versão da linguagem 3.6 e já encontrei algumas diferenças.

Por exemplo, realizei um código similar ao apresentado na aula para uma versão de uma calculadora com apenas 2 métodos (soma e exponenciação). Código:

from contas import Soma, Exponenciacao

class RealizaCalculo():

     def realiza_calculo(self, num1, num2, operacao):
         calculo = operacao.calcular(num1,num2)
         print (calculo)

if __name__ == '__main__':

    from calculadora import Calculadora

    calculador = RealizaCalculo()
    valores = Calculadora(2,4)

    calculador.realiza_calculo(valores.num1, valores.num2, Soma)
    calculador.realiza_calculo(valores.num1, valores.num2, Exponenciacao)

Repare que a forma com quem eu passei o último argumento do método realiza_calculo eu não precisei colocar Soma() ou Exponenciacao() , na verdade se eu colocar acontece um erro e gostaria de entender melhor o por que isso acontece.

Segue abaixo o erro:

calculo = operacao.calcular(num1,num2) TypeError: calcular() takes 2 positional arguments but 3 were given

Ele entende que esse terceiro argumento é o próprio objeto? Não compreendi 100%.

Obrigada desde já :)

1 resposta

Bom dia. Você pode sugerir que o curso seja migrado para Python 3 neste endereço

https://trello.com/b/4grNfK1m/alura-alunos-cursos

Quanto mais alunos pedirem mais chances ele tem de ser refeito.

Eu ainda uso Python 2. Chegou a pedir ajuda no fórum do Python 3 da Alura? Há mudanças substanciais.