56 votes

Comment gérer le message pylint: Avertissement: la méthode peut être une fonction.

En tant que nouvelle personne dans Python, j’ai décidé de me faire part de mes commentaires sur un cours que j’avais écrit dès que possible, je l’ai donc lancé contre pylint. Est-ce que le message qu'il a donné "Warning: Method pourrait être une fonction" me dit qu'il serait préférable de déplacer cette méthode hors de la classe car elle n'utilise aucune variable d'instance? En c # je voudrais en faire une méthode statique. Quelle est la chose la plus pythonique à faire ici?

62voto

Bastien Léonard Points 18404

Se déplaçant à une fonction est commune, si elle ne touche pas la classe à tous.

Si elle manipule les attributs de classe, l'utilisation de l' classmethod décorateur:

@classmethod
def spam(cls, ...):
   # cls is the class, you can use it to get class attributes

classmethod et staticmethod (qui est le même que l'ancien, sauf que la méthode n'a pas obtenir une référence à la classe à partir de son premier paramètre) ont été introduites récemment. Cela signifie que certains de Python pour les programmeurs sont utilisés pour éviter les interférences et les méthodes de la classe.

Certains hardcore Python pour les programmeurs vont vous dire que ces décorateurs juste compliquer les choses; quelques autres personnes (généralement des anciens C# ou Java programmeurs) vous dites que l'utilisation d'une fonction n'est pas orienté objet assez. Je pense que c'est juste une question de préférence.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X