Boa tarde
Poderiam me explicar o que é e como funciona uma um método estático ou @staticmethod?
Obrigado desde já.
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: