Основной вызов Python в классе - PullRequest
22 голосов
/ 24 октября 2011

Я не очень много делал на Python - исходя из C / Java-фона - поэтому извините, что задаю такой простой вопрос.Я использую Pydev в Eclipse для написания этой простой программы, и все, чего я хочу, это выполнить мою основную функцию:

class Example():

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


    def main(self):     
        print "Hello World!

Это то, что у меня есть сейчас.Я также пробовал

self.main() 

и

main()

и

main(self)

, ни одна из которых не работает.Что мне не хватает?

Ответы [ 2 ]

45 голосов
/ 24 октября 2011

Ну, во-первых, вам нужно определить функцию, прежде чем вы сможете ее запустить (и ее не нужно вызывать main). Например:

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

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

Однако вам не нужно использовать класс - если все, что вам нужно, это запустить какой-то код, просто поместите его в функцию и вызовите функцию, или просто поместите его в блок if:

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

if __name__ == '__main__':
    main()

или

if __name__ == '__main__':
    print "Hello, world!"
9 голосов
/ 24 октября 2011

Весь этот блок не на своем месте.

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

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

Но вы действительно не должны использовать класс только для запуска вашего основного кода .

...