2016-04-13 2 views
0

В PyCharm, IDE, которую я использую, всякий раз, когда вы объявляете метод, который не использует переменную self, он дает предупреждение «Method» method_name 'может быть «static».Что делать, если метод не использует self?

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

Так что, в основном, мой вопрос - что мне делать, когда я сталкиваюсь с этим? Должен ли я игнорировать это? Должен ли я заменить его статическим методом (@staticmethod)?

Заранее спасибо.

+0

Является ли ваш метод * classmethod *, * staticmethod * или * методом экземпляра *? – styvane

+0

@ user3100115 Это метод экземпляра, следовательно, он получает 'self', переданный ему. – RobertR

+0

Возможный дубликат [Какова цель я в Python?] (Http://stackoverflow.com/questions/2709821/what-is-the-purpose-of-self-in-python) – styvane

ответ

3

Его намек на то, что метод может быть статическим методом, поскольку он не действует на экземпляры (т. Е. Вы проходите в self, но на самом деле не используете его).

Нет обычных средств для обработки - либо вы хотите, чтобы этот метод был там, потому что вы создаете дерево классов и хотите, чтобы он был определен/переопределен у потомков; или по любой другой причине. В этом случае вы можете игнорировать предупреждение.

Это полностью отличается от @staticmethod; который имеет много других последствий. Поэтому это не вопрос «если я не использую себя, а передаю его, давайте просто сделаем его статическим методом»; вы должны знать, что делает этот метод.

Статические и классные методы чаще всего используются в заводских классах.

+0

Спасибо. Кажется, вы единственный, кто действительно понял этот вопрос. – RobertR

 Смежные вопросы

  • Нет связанных вопросов^_^