Esta es una pregunta académica, más que práctica. Estoy tratando de profundizar en los fundamentos de Python, y me pregunto: ¿podría implementar los decoradores staticmethod
y classmethod
en Python puro si quisiera?¿Se pueden implementar los métodos estáticos y los decodificadores de clase en Python puro?
¿Podría mantener una referencia a la función original y llamarla omitiendo el primer argumento?
Para classmethod
quizás podría mantener una referencia a la función original y llamarla pasando el tipo del primer argumento, en lugar del argumento en sí mismo? (¿Cómo manejaría que se llamara directamente a la clase?)
Una vez más, no es que realmente quiera implementarlo en mis programas; Quiero aprender cómo funciona el lenguaje a partir de él. Si es posible, agradecería muestras de código. Si no, agradecería explicaciones por qué no se puede hacer teóricamente. ¡Gracias!
Edit: ¡Gracias por la respuesta y por la referencia al protocolo del descriptor! Como un medio para ampliar aún más mi comprensión de Python que me gustaría hacer dos cosas más:
Podría hacerse esto sin el protocolo de descriptor, por ejemplo mediante la aplicación de la llamada __ __ método especial en nuestras clases?
¿El protocolo de descriptor funciona de la misma manera en Python 2.7 y en Python 3.x?
¡Gracias nuevamente!
Voy a aceptar esta respuesta, ya que es una respuesta buena y completa a mi pregunta original. ¡Sin embargo, lo agradeceré mucho si responden a mi edición también! ¡Gracias! – Tom