«Если рабочий хочет хорошо выполнять свою работу, он должен сначала заточить свои инструменты» — Конфуций, «Аналитики Конфуция. Лу Лингун»
титульная страница > программирование > В чем разница между методами экземпляра и методами класса в Python?

В чем разница между методами экземпляра и методами класса в Python?

Опубликовано 6 ноября 2024 г.
Просматривать:356

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

Класс и методы экземпляра

Руководство по стилю Python PEP 8 рекомендует использовать «self» для первых аргументов метода экземпляра и «cls» для класса первые аргументы метода. Понимание различия между этими двумя типами методов имеет решающее значение для эффективного объектно-ориентированного программирования.

Методы экземпляра

Методы экземпляра связаны с конкретными экземплярами класса. Они работают с данными экземпляра и обычно принимают «self» в качестве первого аргумента. При доступе к методу экземпляра, например, object.method(), экземпляр автоматически передается методу.

Например, рассмотрим следующее определение класса:

class Person:
    def __init__(self, name):
        self.name = name

    def greet(self):
        print("Hello, my name is", self.name)

Здесь "greet()" — это метод экземпляра, который можно вызвать в любом экземпляре класса "Person" с помощью "object.greet( )".

Методы класса

С другой стороны, методы класса связаны с самим классом, а не с отдельными экземплярами. Они получают «cls» в качестве первого аргумента, который представляет класс. Методы класса используются для задач, относящихся к классу в целом, таких как создание новых экземпляров или доступ к данным уровня класса.

Следующий фрагмент кода иллюстрирует метод класса:

class Math:
    @classmethod
    def sum(cls, a, b):
        return a   b

Метод Math.sum() принимает два аргумента, которые суммируются и возвращаются. Поскольку это метод класса, вы можете вызвать его напрямую как Math.sum(1, 2) для получения результата.

Понимая разницу между методами экземпляра и класса, разработчики могут эффективно использовать все возможности объекта -ориентированное программирование на Python.

Последний учебник Более>

Изучайте китайский

Отказ от ответственности: Все предоставленные ресурсы частично взяты из Интернета. В случае нарушения ваших авторских прав или других прав и интересов, пожалуйста, объясните подробные причины и предоставьте доказательства авторских прав или прав и интересов, а затем отправьте их по электронной почте: [email protected]. Мы сделаем это за вас как можно скорее.

Copyright© 2022 湘ICP备2022001581号-3