[Для чего используются методы класса в Python?](/dlya-chego-ispolzuyutsya-metodi-klassa-v-python-600501)
========================================================================================================

Я преподаю сам Python, и мой последний урок состоял в том, что [Python - это не Java](http://dirtsimple.org/2004/12/python-is-not-java.html), и поэтому я просто потратил некоторое время все мои методы класса в функции.

  
Теперь я понимаю, что мне не нужно использовать методы класса для того, что я сделал бы с методами `static` в Java, но теперь я не уверен, когда буду использовать их. Все советы, которые я могу найти о методах класса Python, похожи на новичков, таких как я, должны избегать их, и стандартная документация при их обсуждении наиболее непрозрачна.

  
Есть ли у кого-нибудь хороший пример использования метода класса в Python или, по крайней мере, может кто-нибудь сказать мне, когда методы класса могут быть разумно использованы?

Честно? Я никогда не нашел использования для staticmethod или classmethod. Я еще не видел операцию, которая не может быть выполнена с использованием глобальной функции или метода экземпляра.

  
Было бы иначе, если бы python использовал закрытые и защищенные члены, похожие на Java. В Java мне нужен статический метод, чтобы иметь возможность доступа к частным членам экземпляра, чтобы делать вещи. В Python это редко необходимо.

  
Обычно я вижу людей, использующих staticmethods и classmethods, когда все, что им действительно нужно делать, это лучше использовать пространства имен на уровне модуля python.