buenas noches soy el profesor Omar aqui desde venezuela aqui estoy siguiendo sus cursos de python cada vez me gusta mas la programacion python y quisiera aprender mas con usted sobre base de datos y desarrollo web no se si usted da esos cursos quisiera saber
RESUMEN. Python tiene una variable "oculta" llamada __name__ en todo archivo. La variable __name__ toma el valor de "__main__" cuando estás ejecutando ese archivo directamente, sino va a tomar el nombre que le pusiste al archivo. Cuando se importa un modulo, python por defecto trata de ejecutarlo todo como un Script. Para poder importar solo una función sin que se ejecute todo el modulo que importaste, debes poner un entry point en el modulo estas tratando de importar. Ese entry point es un condicional que inicializa las demas funciones solo si ese archivo se está ejecutando directamente y previene que cuando lo importes desde otro archivo, corra todo como si fuese parte del mismo archivo, permitiendote usar solo las funciones puntuales que quieres del modulo que estas importando.
Que video tan genial hermano, muchas gracias!!! Llevo unos meses estudiando cursos de python y no habia visto esta explicación. un share porque mas gente necesita este contenido 👌
Hola Sergio, me estan siendo de gran ayuda tus clases. Ahora bien, quisiera plantearte una simple sugerencia y una duda. En el archivo modulo, con la definición de la función factorial, la variable f inicializada en 1 al principio, se puede confundir con la f dentro del print invocando el formato, podría por ejemplo denominarse fac=1. Por otro lado, no entiendo porqué razón habiendo 4 instrucciones print que se ejecutan en una misma línea, la cuarta tiene un final distinto a las tres primeras. No veo por que razón lel último print (f) se materializa en la misma linea que los anteriores 3. Espero haber sido claro en exponer mi duda. Gracias por tu atención.
Hola Gustavo, gracias por la sugerencia, correcto puede emplearse el nombre de variable fac=1 para evitar confusiones. Con relación a tu duda el último print se materializa en la misma linea es porque alguno de los tres prints anteriores antes de ejecutar el print(f), le hemos colocado que no haga salto de linea colocando el atributo end='', es por eso que al no haber salto de linea se imprime en la misma linea. Espero hayas podido entender el porque de este fenómeno. Saludos.
Me quedó dando vueltas una duda. Dado que se dejaron dos llamadas a la función factorial en el modulo.py y se evito dicha carga generando el if __name__==__main__ como entrypoint, Debo realizar en todos mis archivos.py este condicional como entrypoint o solo desde el archivo .py que se considerará como script principal?
➤ Sitio WEB : bit.ly/3hnu5J9
➤ Curso de Python : bit.ly/CAE_Python
➤ Curso de MicroPython: bit.ly/u_Python
➤ Curso de Matlab : bit.ly/2Fks7XN
➤ Curso Simulink : bit.ly/3a0W8Xr
➤ ¿Quieres ser un experto? bit.ly/2RVvxne
buenas noches soy el profesor Omar aqui desde venezuela aqui estoy siguiendo sus cursos de python cada vez me gusta mas la programacion python y quisiera aprender mas con usted sobre base de datos y desarrollo web no se si usted da esos cursos quisiera saber
Muy bien vídeo, claro y preciso. Muchas gracias.
Gracias Victor por el comentário. Saludos!!!
RESUMEN.
Python tiene una variable "oculta" llamada __name__ en todo archivo.
La variable __name__ toma el valor de "__main__" cuando estás ejecutando ese archivo directamente, sino va a tomar el nombre que le pusiste al archivo.
Cuando se importa un modulo, python por defecto trata de ejecutarlo todo como un Script.
Para poder importar solo una función sin que se ejecute todo el modulo que importaste, debes poner un entry point en el modulo estas tratando de importar. Ese entry point es un condicional que inicializa las demas funciones solo si ese archivo se está ejecutando directamente y previene que cuando lo importes desde otro archivo, corra todo como si fuese parte del mismo archivo, permitiendote usar solo las funciones puntuales que quieres del modulo que estas importando.
Que video tan genial hermano, muchas gracias!!!
Llevo unos meses estudiando cursos de python y no habia visto esta explicación.
un share porque mas gente necesita este contenido 👌
Gracias Jefferson por el comentário, que bueno que te fue de utilidad. Éxitos!!
Muy buen video gracias
Gracias Adalberto por el comentario. Saludos!!
Muy buena explicación, gracias.
muy buien explicado
Hola Data obb, muchas gracias. Saludos!
thx
Gracias
De nada Maximiliano!! Éxitos.
Hola Sergio, me estan siendo de gran ayuda tus clases. Ahora bien, quisiera plantearte una simple sugerencia y una duda.
En el archivo modulo, con la definición de la función factorial, la variable f inicializada en 1 al principio, se puede confundir con la f dentro del print invocando el formato, podría por ejemplo denominarse fac=1.
Por otro lado, no entiendo porqué razón habiendo 4 instrucciones print que se ejecutan en una misma línea, la cuarta tiene un final distinto a las tres primeras. No veo por que razón lel último print (f) se materializa en la misma linea que los anteriores 3. Espero haber sido claro en exponer mi duda. Gracias por tu atención.
Hola Gustavo, gracias por la sugerencia, correcto puede emplearse el nombre de variable fac=1 para evitar confusiones.
Con relación a tu duda el último print se materializa en la misma linea es porque alguno de los tres prints anteriores antes de ejecutar el print(f), le hemos colocado que no haga salto de linea colocando el atributo end='', es por eso que al no haber salto de linea se imprime en la misma linea. Espero hayas podido entender el porque de este fenómeno. Saludos.
@@SergioACGiraldo Ahora sí, creo entender. Lo voy a ensayar. Muchas gracias Sergio
Me quedó dando vueltas una duda. Dado que se dejaron dos llamadas a la función factorial en el modulo.py y se evito dicha carga generando el if __name__==__main__ como entrypoint, Debo realizar en todos mis archivos.py este condicional como entrypoint o solo desde el archivo .py que se considerará como script principal?
Antes que nada Gracias. Sòlo que te vas por las ramas sin explicar especificamente lo que prometes en el titulo del video. :(