Boa tarde
Poderiam me explicar o que é e como funciona uma um método estático ou @staticmethod?
Obrigado desde já.
Você está vendo a versão anterior da nova experiência da Alura que estamos preparando para você. Em breve, ela ganha uma identidade visual novinha totalmente pensada em potencializar seus estudos!
Boa tarde
Poderiam me explicar o que é e como funciona uma um método estático ou @staticmethod?
Obrigado desde já.
Boa tarde,
Um método estático é um método que pertence à classe em vez de pertencer a instâncias individuais dessa classe. Ele pode ser acessado diretamente através do nome da classe, sem a necessidade de criar uma instância dessa classe.
Por exemplo:
class MinhaClasse:
@staticmethod
def metodo_estatico():
print("Este é um método estático.")
# Chamando o método estático diretamente através do nome da classe
MinhaClasse.metodo_estatico()
A principal característica é que ele não requer uma instância, a classe não precisa ser instanciada para o método ser chamado.
Bons estudos!
Olá, Luiz
Talvez sua dúvida esteja relacionada com o fato de os professores terem utilizado @classmethod nas aulas e no exercício ter sido pedido @staticmethod... Então vamos falar sobre esses dois!
Para o contexto da aula e para o contexto do exercício, tanto @classmethod quanto @staticmethod nos atende. O que vai mudar é a forma de escrever e acessar a classe dentro do método.
A documentação explica que usando o @classmethod podemos ter acesso à classe, pois ela é passada como primeiro argumento implícito. Inclusive na aula, ao usar o @classmethod, o professor salientou que o padrão é nomear esse primeiro argumento com o nome cls. Tipo quando nomeamos o primeiro argumento como self, nos outros métodos, para passar a instância.
Já no @statismethod não temos acesso à classe pois ele não recebe a classe como argumento implícito.
Fontes: vozes da minha cabeça rsrs Brincadeira, as fontes são: