web-dev-qa-db-fra.com

Python appel principal dans la classe

Je n'ai pas fait grand chose python - venant d'un arrière-plan C/Java - alors excusez-moi de poser une question aussi simple. J'utilise Pydev dans Eclipse pour écrire ce programme simple, et tout ce que je que je veux faire est d'exécuter ma fonction principale:

class Example():

if __name__ == '__main__':
    Example().main()        <----- What goes here?


    def main(self):     
        print "Hello World!

C'est ce que j'ai maintenant. J'ai aussi essayé

self.main() 

et

main()

et

main(self)

dont aucun ne fonctionne. Qu'est-ce que je rate?

23
franka

Eh bien, tout d'abord, vous devez réellement définir une fonction avant de pouvoir l'exécuter (et elle n'a pas besoin d'être appelée main). Par exemple:

class Example(object):
    def run(self):
        print "Hello, world!"

if __name__ == '__main__':
    Example().run()

Cependant, vous n'avez pas besoin d'utiliser une classe - si tout ce que vous voulez faire est d'exécuter du code, placez-le simplement dans une fonction et appelez la fonction, ou mettez-le simplement dans le bloc if:

def main():
    print "Hello, world!"

if __name__ == '__main__':
    main()

ou

if __name__ == '__main__':
    print "Hello, world!"
47
Amber

Ce bloc entier est mal placé.

class Example(object):
    def main(self):     
        print "Hello World!"

if __name__ == '__main__':
    Example().main()

Mais vous ne devriez vraiment pas utiliser une classe juste pour exécuter votre code principal .

9