На этом шаге мы определимся с дальнейшим изложением.
В этом и следующих шагах вы увидите, что именно в Python стоит за методами класса (class methods), статическими методами (static methods) и обычными методами экземпляра (instance methods).
Если вы разовьете интуитивное понимание их различий, то сможете писать объектно-ориентированный программный код Python, который яснее сообщает свой замысел и в конечном счете будет удобнее в сопровождении.
Давайте начнем с написания класса (Python 3), который содержит простые примеры всех трех типов методов:
>>> class MyClass: def method(self): return 'вызван метод экземпляра', self @classmethod def classmethod(cls): return 'вызван метод класса', cls @staticmethod def staticmethod(): return 'вызван статический метод'
Примечание для пользователей Python 2: декораторы @staticmethod и @classmethod доступны, начиная с Python 2.4, и поэтому данный пример будет работать как есть. Вместо того чтобы использовать простое объявление class MyClass, вы можете объявить класс в новом стиле, с наследованием от object с помощью синтаксической конструкции MyClass(object). Но в остальном все в порядке!
На следующем шаге мы рассмотрим методы экземпляра.