¿Por qué un método estático se considera un método?
Estoy escribiendo una explicación de algún código para un curso, y he estado usando accidentalmente las palabrasmethod
yfunction
indistintamente. Decidí volver y arreglar la redacción, pero me encontré con un agujero.
Por lo que entiendo, una subrutina es unfunction
si no actúa en una instancia de una clase (su efecto está restringido a su entrada / salida explícita), y es unmethod
si opera en una instancia de una clase (puede llevar a cabo efectos secundarios en la instancia que lo hacen impuro).
Hay unabuena discusión aquí en el tema. Tenga en cuenta que según las definiciones de las respuestas aceptadas, un estáticomethod
en realidad debería ser una función porque una instancia nunca se pasa implícitamente y no tiene acceso a los miembros de ninguna instancia.
Sin embargo, teniendo esto en cuenta, no debería ser estáticomethods
en realidad ser funciones?
Por su definición, no actúan en instancias particulares de una clase; solo están "atados" a la clase debido a su relación. Sin embargo, he visto algunos sitios atractivos que se refieren a las subrutinas estáticas como "métodos" (Oráculo, Fredosaurus, Programación Simplificada), o bien todos pasan por alto la terminología o me falta algo (supongo que es lo último).
Me gustaría asegurarme de que estoy usando la redacción correcta.
¿Alguien puede aclarar esto?