Por que para obtermos o mês, basta colocar .month, enquanto para o dia da semana é necessário incluir os parênteses, ou seja, .weekday()?
Por que para obtermos o mês, basta colocar .month, enquanto para o dia da semana é necessário incluir os parênteses, ou seja, .weekday()?
Olá, Marina! Tudo bem?
A razão para essa diferença é que .month
é um atributo (ou propriedade) da classe datetime
, enquanto .weekday()
é um método.
Atributos são características ou propriedades que um objeto possui. No caso do objeto datetime
, .month
é um atributo que retorna o mês da data. Por ser um atributo, não precisamos dos parênteses para acessá-lo.
Por outro lado, métodos são funções que pertencem a um objeto e realizam alguma ação. No caso de .weekday()
, ele é um método que retorna o dia da semana como um número inteiro (onde segunda-feira é 0 e domingo é 6). Como é um método, precisamos dos parênteses para chamá-lo.
Então, em resumo, a diferença está no fato de que .month
é um atributo (uma característica da data) e .weekday()
é um método (uma ação que calcula o dia da semana a partir da data).
Você pode se aprofundar sobre esse conteúdo ainda mais observando a documentação do python sobre essa classe. Link:
Em caso de dúvidas, me coloco à disposição.
Grande abraço e bons estudos!
A minha dúvida era mais no sentido de saber o porquê a classe datetime teria construída fazendo com que uma dessas características fosse um atributo e a outra um método, dado que na minha visão são informações de tipo bastante semelhante.