Métodos de classe vs. instância
O guia de estilo PEP 8 do Python recomenda o uso de "self" para os primeiros argumentos do método de exemplo e "cls" para a classe primeiros argumentos do método. Compreender a distinção entre esses dois tipos de métodos é crucial para uma programação orientada a objetos eficaz.
Os métodos de instância estão associados a instâncias específicas de uma classe. Eles operam nos dados da instância e normalmente recebem “self” como primeiro argumento. Ao acessar um método de instância como, por exemplo, object.method(), a instância é automaticamente passada para o método.
Por exemplo, considere a seguinte definição de classe:
class Person:
def __init__(self, name):
self.name = name
def greet(self):
print("Hello, my name is", self.name)
Aqui, "greet()" é um método de instância que pode ser invocado em qualquer instância da classe "Person" com "object.greet( )".
Os métodos de classe, por outro lado, estão associados à própria classe e não a instâncias individuais. Eles recebem "cls" como primeiro argumento, que representa a classe. Os métodos de classe são usados para tarefas que pertencem à classe como um todo, como criar novas instâncias ou acessar dados em nível de classe.
O trecho de código a seguir ilustra um método de classe:
class Math:
@classmethod
def sum(cls, a, b):
return a b
O método "Math.sum()" recebe dois argumentos que são somados e retornados. Como é um método de classe, você pode invocá-lo diretamente como Math.sum(1, 2) para obter o resultado.
Ao compreender a diferença entre métodos de instância e de classe, os desenvolvedores podem efetivamente aproveitar todos os recursos do objeto programação orientada em Python.
Isenção de responsabilidade: Todos os recursos fornecidos são parcialmente provenientes da Internet. Se houver qualquer violação de seus direitos autorais ou outros direitos e interesses, explique os motivos detalhados e forneça prova de direitos autorais ou direitos e interesses e envie-a para o e-mail: [email protected]. Nós cuidaremos disso para você o mais rápido possível.
Copyright© 2022 湘ICP备2022001581号-3