En PHP tenemos spl_autoload_register() para la carga dinámica de clases utilizando sus namespaces, pero en Python no logro encontrar algo parecido.
¿Existe algún equivalente? Si es que no, ¿qué otra alternativa hay?
| ||||
Respuesta: ¿Existe autoload en Python? En python tienes eval que puede ser mas sofisticado que el de PHP. Existen metaclases donde nosotros definimos como se crearan las clases. |
| ||||
Respuesta: ¿Existe autoload en Python? No entiendo cómo podría ayudarme en la autocarga de clases las metaclases. Si utilizo eval ¿no estaría dejando un hueco de seguridad en mi programa a la vez que estaría incumpliendo el "explícito mejor que implícito"?
__________________ Ayúdame a hacerlo por mi mismo. |
| ||||
Respuesta: ¿Existe autoload en Python? Acabo de ver que hace "spl_autoload_register" y creo que mas o menos entiendo entiendo que hace. Ya que no tocaría php ni a 30 metros con un palo. Y como tampoco tenia idea de que lo que tratabas de hacer (sigo sin tener idea pero ahora mas o menos creo que se por donde va). Asumo que lo quieres hacer es importar una clase o un modulo. Dado un string. ¿Me equivoco? Si es así, checa importlib (también estoy asumiendo que usas python 2.7 o mejor). Lo de la cuestión del eval, era porque pensaba que estas generando el código de una clase en un string, de ahí lo de metaclases (si tampoco mencionaste de donde sacaras el código). Pero parece que lo que querías era mas simple. Otra cosa, python no es como php, si lo tratas de usar python como php te recomiendo mejor quedarte en php. |
| ||||
Respuesta: ¿Existe autoload en Python? Muchas gracias razpeitia por tu ayuda. Probaré esta función a ver si me puede ayudar. Lo que quiero hacer son llamadas ciegas, tal y cómo dices, pasando un string, pero también poder utilizar el namespace de una clase para poder utilizarla en otro documento sin tener que llenar la cabecera del archivo con includes. No trato de utilizar Python cómo si fuera PHP, pero no veo de qué manera se trabaja este asunto en Python; para mi es muy importante porque no trabajo con otra cosa que no sea el paradigma POO. Sí, mi versión es la 2.7 y a la vez estoy con PySide, del Qt 4.8
__________________ Ayúdame a hacerlo por mi mismo. |
| ||||
Respuesta: ¿Existe autoload en Python? En un proyecto grande el importar automáticamente las clases puede causarte varios problemas. Lo mejor es que seas ordenado e importes sólo lo que necesitas, te recomiendo mucho que le des una leída a la guía de estilo de Python: https://www.python.org/dev/peps/pep-0008/#imports Vas a notar que muchas cosas son muy diferentes a cómo se hacen en PHP pero por una buena razón. Saludos. |
Etiquetas: Ninguno |