"Se um trabalhador quiser fazer bem o seu trabalho, ele deve primeiro afiar suas ferramentas." - Confúcio, "Os Analectos de Confúcio. Lu Linggong"
Primeira página > Programação > Qual é a diferença entre métodos de instância e métodos de classe em Python?

Qual é a diferença entre métodos de instância e métodos de classe em Python?

Publicado em 2024-11-06
Navegar:100

What is the difference between instance methods and class methods in Python?

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.

Métodos de instância

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( )".

Métodos de classe

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.

Tutorial mais recente Mais>

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