Python方法放置

时间:2010-10-14 20:50:49

标签: python

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

dosomething()

def dosomething():
    print 'do something'

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

2 个答案:

答案 0 :(得分:13)

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

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

def foo():
    print 'inside foo'

def bar():
    print 'inside bar'

if __name__ == '__main__':
    main()

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

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

修改:您可能还想查看Guido's advice on writing main's。此外,Daenyth提出了一个很好的观点(并且让我回答):你应该做这样的事情的原因不是“标准”,甚至它允许你在“主”代码下面定义函数。你应该这样做的原因是它鼓励你编写模块化和可重用的代码。

答案 1 :(得分:3)

除了将dosomething的定义添加到单独的文件并导入它之外:

from my_module import dosomething

dosomething()

我不相信有任何其他方式......但我可能是错的。