2
respostas

aula python3 orientação a objeto

na hora de rodar o exemplo da aula no meu pycharm da um erro na linha 2 , sendo q era pra imprimir o nome do filme ao rodar.

class Filme:
    def __init__(self, ano, filme, duração)
       self.ano = ano
       self.filme = filme
       self.duração = duração


vingadores = Filme('vingadores = guerra infinita', 2018, 160)
print(vingadores)
2 respostas

ja consegui. :D

Olá Gabriela.

Notei que faltou o dois pontos ( : ) na definição do __init__:

class Filme:
    def __init__(self, ano, filme, duração):
       self.ano = ano
       self.filme = filme
       self.duração = duração


vingadores = Filme('vingadores = guerra infinita', 2018, 160)
print(vingadores)

Um detalhe que percebi é que a ordem dos parâmetros não está de acordo com o definido no __init__, a ordem era filme, ano e duração:

class Filme:
    def __init__(self, filme, ano, duração):
       self.ano = ano
       self.filme = filme
       self.duração = duração

Então quando formos criar o objeto devemos passar os parâmetros nessa ordem:

vingadores = Filme('vingadores = guerra infinita', 2018, 160)

Outro ponto é que na verdade esse código vai imprimir o objeto criado.

> python .\principal.py
<__main__.Filme object at 0x0335A2B0>

Para imprimir o nome do filme, devemos acessar o atributo filme:

vingadores = Filme('vingadores = guerra infinita', 2018, 160)
print(vingadores.filme)

E teremos o resultado que você pretendia:

> python .\principal.py
vingadores = guerra infinita

Espero ter ajudado, bons estudos.