有人可以给我一个解决方案吗
dosomething()
def dosomething():
print 'do something'
我不希望我的方法在文件的顶部定义,有没有办法解决这个问题?
答案 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()
我不相信有任何其他方式......但我可能是错的。