Cómo manejar el mensaje pylint: Advertencia: El método podría ser una función

StackOverflow https://stackoverflow.com/questions/2674035

  •  28-09-2019
  •  | 
  •  

Pregunta

Tengo una clase Python y pylint RAN en contra de ella. Un mensaje que dio fue:

Warning: Method could be a function

Es esto me dice que sería mejor mover este método fuera de la clase, ya que no utiliza ninguna variable de instancia?

En C # Me haría esto un método estático. ¿Cuál es la cosa más Pythonic a hacer aquí?

¿Fue útil?

Solución

Si lo mueve a una función es común, si no toca la clase en absoluto.

Si se manipula atributos de clase, utilice el decorador classmethod:

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

classmethod y staticmethod (que es el mismo que el anterior, excepto que el método no obtiene una referencia a la clase de su primer parámetro) se han introducido recientemente. Esto significa que algunos programadores de Python se usan para los métodos estáticos y de clase evitar.

Algunos programadores de Python incondicionales le dirá que estas cosas se complican decoradores; algunas otras personas (por lo general ex C # o programadores de Java) le dirá que el uso de una función no es lo suficientemente orientado a objetos. Creo que es sólo una cuestión de preferencia.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top