Programación Web y Scripting > Python
Dudas Metodo main
cristiantorres:
Como lo dije antes recién estoy aprendiendo python, ya que en la universidad solo enseñan java y c# decidi aprender otro lenguaje y me decidi por python.
y poco a poco le voy entendiendo pero una de las cosas que aun no tengo claras es con el metodo main en c# para que un programa se ejecute tiene que existir el método Main y veo que en python no es asi.
Por ejemplo para ver un poco de programación orientada a objetos hice este ejemplo
cree un archivo llamado ejemplo.py
--- Código: ---class Ejemplo:
def Imprimir(self, nom):
self.nom=nom
print "nombre",nom
--- Fin del código ---
y otro archivo principal.py donde ago uso del metodo imprimir
--- Código: ---from ejemplo import Ejemplo
class Prueba:
ob = Ejemplo()
ob.Imprimir("juan")
--- Fin del código ---
y perfecto corre pero se me vienen a la mente unas cuantas preguntas por ejemplo si creo un programa en python que utilize bastantes archivos .py (ejemplo unos 6 archivos) como especificar en que clase deberia comenzar le programa como ya lo dije antes en c# el programa empieza a ejecutarse en el método Main que es donde se instancia los métodos y clases.
estoy trabajando con pyscripter y cuando creo un nuevo archivo siempre me crea el siguiente código del método main
--- Código: ---def main():
pass
if __name__ == '__main__':
main()
--- Fin del código ---
pero como bien dije antes no tengo idea como se usa el metodo main en python
RadicalEd:
Esa función main en si no está hacien nada, el parámetro pass le quiere decir que siga la ejecución.
la parte de:
if __name__ == '__main__':
Le está preguntando a la aplicación si se está ejecutando desde ella misma o desde otro archivo la están llamando, si se está ejecutando desde ella misma entonces ejecutará la función main.
Es claro???
cristiantorres:
--- Cita de: Edo en Jueves 12 de Abril de 2012, 15:10 ---Esa función main en si no está hacien nada, el parámetro pass le quiere decir que siga la ejecución.
la parte de:
if __name__ == '__main__':
Le está preguntando a la aplicación si se está ejecutando desde ella misma o desde otro archivo la están llamando, si se está ejecutando desde ella misma entonces ejecutará la función main.
Es claro???
--- Fin de la cita ---
Gracias por responder.
Pero mi pregunta seria digamos si tengo 6 archivos es necesario que dentro de uno de ellos este el método main o no? en c# tienen que haber un archivo que contenga el método main ya que de ahí es donde empieza a ejecutarse el programa... pero en python eso veo que cambia
RadicalEd:
No es obligatorio el método main, te daría lo mismo si lo llamas:
def estemetodotieneunnombremuylargoporquenosemeocurrioquemasponer():
pass
no en todos los archivos es necesario la parte de:
if __name__ == '__main__':
Es solo necesario si vas a validar lo que te digo si el programa se está ejecutando desde si mismo, te pongo un ejemplo más claro:
--- Código: Python ---#mimismo.py def hola() print 'Hola a mi mundo!' if __name__ == '__main__': print 'Me estoy ejecutando desde mi mismo' hola()
--- Código: Python ---#otroarchivo.pyimport mimismo mimismo.hola()
Ejecutalos y me entenderás
cristiantorres:
perfecto ya lo entendí if __name__ == '__main__': sirve para indicar que se esta ejecutando de si mismo, y cuando importas el archivo desde otro podes utilizar las funciones para reutilizarlas en otros archivos.
Así le entendí, estoy bien o mal?
Lo que no me quedo claro del ejemplo es que si ejecuto el archivo otroarchivo.py también se ejecuta el archivo mimismo.py, lo digo porque cuando lo ejecuto me crea un archivo mimismo compilado
Navegación
[#] Página Siguiente
Ir a la versión completa