2016-04-13 10 views
0

In PyCharm, der IDE, die ich benutze, wenn Sie eine Methode deklarieren, die die self Variable nicht verwendet, gibt es Ihnen die Warnung "Method 'method_name' kann 'statisch' sein".Was ist, wenn eine Methode nicht selbst verwendet?

Ich bin oft auf diese Warnung gestoßen und die meiste Zeit ignoriere ich sie einfach. Ich habe mich jedoch gefragt, ob es eine konventionelle oder pythonische Art gibt, damit umzugehen.

Also im Grunde ist meine Frage, was soll ich tun, wenn ich auf das stoße? Sollte ich es ignorieren? Soll ich es durch eine statische Methode (@staticmethod) ersetzen?

Vielen Dank im Voraus.

+0

Ist Ihre Methode * classmethod *, * staticmethod * oder * instance method *? – styvane

+0

@ user3100115 Es handelt sich um eine Instanzmethode, und deshalb wird es an sich selbst weitergegeben. – RobertR

+0

Mögliches Duplikat von [Was ist der Zweck von Selbst in Python?] (Http://stackoverflow.com/questions/2709821/what-is-the-purpose-of-self-in-python) – styvane

Antwort

3

Es ist ein Hinweis, der besagt, dass die Methode eine statische Methode sein kann, da sie nicht auf Instanzen wirkt (dh Sie geben self weiter, verwenden sie aber nicht).

Es gibt keine konventionellen Mittel, um damit umzugehen - entweder wollen Sie, dass diese Methode da ist, weil Sie einen Klassenbaum erstellen und wollen, dass er in den Nachkommen definiert/überschrieben wird; oder aus irgendeinem anderen Grund. In diesem Fall können Sie die Warnung ignorieren.

Dies ist völlig anders als @staticmethod; Das hat viele andere Konsequenzen. Es geht also nicht darum, "wenn ich nicht das Selbst benutze, sondern es weiter gebe, lass es einfach zu einer statischen Methode machen"; Sie müssen wissen, was die Methode macht.

Statische und Klassenmethoden werden am häufigsten in Fabrikklassen verwendet.

+0

Danke. Es scheint, du bist der einzige, der die Frage wirklich verstanden hat. – RobertR

Verwandte Themen