Solucionado (ver solução)
Solucionado
(ver solução)
1
resposta

Código está dando erro

class Datas:

    def __init__(self, dia, mes, ano):
        self.dia = dia
        self.mes = mes
        self.ano = ano

    def formatado(self):
        print(f'{self.dia}/{self.mes}/{self.ano}')

Sinceramente não sei oque está acontecendo, sempre que tento usar Datas.formatado() esse erro aparece

Traceback (most recent call last): File "", line 1, in TypeError: formatado() missing 1 required positional argument: 'self'

Alguém tem alguma ideia?

1 resposta
solução!

Olá Alysson, tudo bem com você?

As classes são construtoras de objetos onde podemos declarar quais atributos um objeto terá, no exemplo proposto, temos a classe Datas, que será responsável pela criação de dos objetos (as datas); nessa classe temos o método formatado que será responsável por fazer a formatação da data.

Para podermos utilizar um método é necessário que seja criado antes um objeto. Sabendo disso, pela mensagem de erro que é apresentada, está sendo feito o uso de um método antes que seja criado um objeto.

Para utilizar a sua classe, crie um objeto da seguinte forma:

obj_data = Datas(2, 4, 2022)

Coloquei o nome de obj_data para podermos lembrar que essa variável corresponde a um objeto. Usamos a classe Datas() para efetuar essa construção. Após criarmos este objeto, podemos utilizar um método da classe, da seguinte forma:

obj_data = Datas(2, 4, 2022)
obj_data.formatado()
# Resultado

2/4/2022

Código completo

class Datas:

    def __init__(self, dia, mes, ano):
        self.dia = dia
        self.mes = mes
        self.ano = ano

    def formatado(self):
        print(f'{self.dia}/{self.mes}/{self.ano}')


obj_data = Datas(2, 4, 2022)
obj_data.formatado()

Em caso de dúvidas, encontro-me à disposição.

Abraços e bons estudos.

Caso este post tenha lhe ajudado, por favor, marcar como solucionado ✓. Bons Estudos!