• Domingo 17 de Noviembre de 2024, 18:37

Autor Tema:  Dudas Metodo main  (Leído 7325 veces)

cristiantorres

  • Nuevo Miembro
  • *
  • Mensajes: 22
  • Nacionalidad: sv
  • Bendiciones para todos
    • Ver Perfil
    • Blog dedicado a la programacion
Dudas Metodo main
« en: Jueves 12 de Abril de 2012, 00:21 »
0
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: [Seleccionar]
class Ejemplo:
    def Imprimir(self, nom):
        self.nom=nom
        print "nombre",nom

y otro archivo principal.py donde ago uso del metodo imprimir
Código: [Seleccionar]
from ejemplo import Ejemplo
class Prueba:
    ob = Ejemplo()
    ob.Imprimir("juan")

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: [Seleccionar]
def main():
    pass

if __name__ == '__main__':
    main()


pero como bien dije antes no tengo idea como se usa el metodo main en python
« última modificación: Jueves 12 de Abril de 2012, 01:30 por cristiantorres »
Visita mi Blog C#, Asp.Net, Python y mas...
Blog Cristian Torres
Foro Codemania

RadicalEd

  • Moderador
  • ******
  • Mensajes: 2430
  • Nacionalidad: co
    • Ver Perfil
Re:Dudas Metodo main
« Respuesta #1 en: Jueves 12 de Abril de 2012, 15:10 »
0
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???
El pasado son solo recuerdos, el futuro son solo sueños

cristiantorres

  • Nuevo Miembro
  • *
  • Mensajes: 22
  • Nacionalidad: sv
  • Bendiciones para todos
    • Ver Perfil
    • Blog dedicado a la programacion
Re:Dudas Metodo main
« Respuesta #2 en: Jueves 12 de Abril de 2012, 17:45 »
0
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???
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
Visita mi Blog C#, Asp.Net, Python y mas...
Blog Cristian Torres
Foro Codemania

RadicalEd

  • Moderador
  • ******
  • Mensajes: 2430
  • Nacionalidad: co
    • Ver Perfil
Re:Dudas Metodo main
« Respuesta #3 en: Sábado 14 de Abril de 2012, 18:21 »
0
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
  1. #mimismo.py
  2.  
  3. def hola()
  4.     print 'Hola a mi mundo!'
  5.  
  6. if __name__ == '__main__':
  7.    print 'Me estoy ejecutando desde mi mismo'
  8.    hola()
  9.  
Código: Python
  1. #otroarchivo.py
  2. import mimismo
  3.  
  4. mimismo.hola()
  5.  

Ejecutalos y me entenderás
El pasado son solo recuerdos, el futuro son solo sueños

cristiantorres

  • Nuevo Miembro
  • *
  • Mensajes: 22
  • Nacionalidad: sv
  • Bendiciones para todos
    • Ver Perfil
    • Blog dedicado a la programacion
Re:Dudas Metodo main
« Respuesta #4 en: Domingo 15 de Abril de 2012, 01:44 »
0
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
Visita mi Blog C#, Asp.Net, Python y mas...
Blog Cristian Torres
Foro Codemania

carlosgim

  • Nuevo Miembro
  • *
  • Mensajes: 2
    • Ver Perfil
Re:Dudas Metodo main
« Respuesta #5 en: Martes 6 de Noviembre de 2012, 22:55 »
0
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
  1. #mimismo.py
  2.  
  3. def hola()
  4.     print 'Hola a mi mundo!'
  5.  
  6. if __name__ == '__main__':
  7.    print 'Me estoy ejecutando desde mi mismo'
  8.    hola()
  9.  
Código: Python
  1. #otroarchivo.py
  2. import mimismo
  3.  
  4. mimismo.hola()
  5.  

Ejecutalos y me entenderás

Hola Edo,

creo que deberías agregar un ":" al finalizar "hola()" en la definición.

Código: Python
  1. ...
  2. def hola():
  3.     print 'Hola a mi mundo!'
  4. ...
  5.  

Saludos!

$francisco

  • Miembro activo
  • **
  • Mensajes: 49
  • Nacionalidad: es
    • Ver Perfil
Re:Dudas Metodo main
« Respuesta #6 en: Domingo 17 de Febrero de 2013, 21:00 »
0
Creo que hay algunas confusiones, main en este caso no es metodo, ya que no esta dentro de la clase si no me equiboco, es simplemente una funcion que se ejecutara si se este ejecutando el archivo directamente.