Python方法放置

sha*_*awn 5 python

有人可以给我一个解决方案

dosomething()

def dosomething():
    print 'do something'
Run Code Online (Sandbox Code Playgroud)

我不希望我的方法定义在文件的顶部,有没有办法解决这个问题?

Joe*_*ton 13

"标准"方法是main在文件顶部的函数内部执行操作,然后main()在底部调用.例如

def main():
    print 'doing stuff'
    foo()
    bar()

def foo():
    print 'inside foo'

def bar():
    print 'inside bar'

if __name__ == '__main__':
    main()
Run Code Online (Sandbox Code Playgroud)

如果if __name__ == '__main__':部分确保main()在文件导入另一个python程序时不会被调用,但仅在文件直接运行时调用.

当然,"主要"并不意味着什么...(__main__但是,确实如此!)这是一个伪造的惯例,但你也可以称之为do_stuff,然后if __name__ == '__main__': do_stuff()在底部.

编辑:您可能也想看看上书写圭多的建议main.此外,Daenyth提出了一个很好的观点(并且让我回答):你应该做这样的事情的原因不是"标准",甚至它允许你在"主"代码下面定义函数.你应该这样做的原因是它鼓励你编写模块化和可重用的代码.