Python-GoogleLesson-boilerplate调用函数

Python-GoogleLesson-boilerplate调用函数,python,function,boilerplate,Python,Function,Boilerplate,我在YouTube上观看了一些由谷歌制作的视频,在这些视频的基础课程中,他们展示了如何创建和调用函数: def main(): print 'Hello' if __name__ == '__main__': # this is the boilerplate portion main() 如果代码可以如下所示,为什么我们需要采取额外的步骤来创建样板文件: def main(): print 'Hello' main() 如果没有额外的代码,输出将完全相同 -

我在YouTube上观看了一些由谷歌制作的视频,在这些视频的基础课程中,他们展示了如何创建和调用函数:

def main():
    print 'Hello'

if __name__ == '__main__':   # this is the boilerplate portion
    main()
如果代码可以如下所示,为什么我们需要采取额外的步骤来创建样板文件:

def main():
    print 'Hello'

main()
如果没有额外的代码,输出将完全相同


-BK

这样,当文件由其他文件导入时,部件不会运行。
只有当文件实际上是第一个“调用”时,代码才会运行。

这是出于测试目的。然后编写模块,您可以在名称/主要部分下对其进行测试,并确保您编写的代码正常工作。但是,当您从另一个模块调用它时,您在本节下测试的模块将不会调用。

如果您想导入文件而不调用主函数,您将需要
if\uuuuuuuu name\uuuu==“\uuuuuuuuuu main\uuuuuu”
。包含几个很好的答案。我现在明白它的用途了。。。。。我已经测试过了。它肯定会阻止它在被调用之前运行。但是,为什么不在这个文件中不包含run选项,而只在我们要导入的文件中运行它,从而使代码更简单、更干净呢?少点笔划?我想我现在真的理解多了一点。我们在其中添加了一小行代码,以便能够不断修改模块并对其进行独立测试,而无需在我们将其导入的主文件中运行,也无需不断键入和删除main(),以便在进行更改后对其进行反复测试。当然,您可以完全忽略函数调用。但是,当您运行模块时,它不会运行。
\uuuuu main\uuuuu
测试只适用于运行模块时要运行的代码,而不是导入模块时要运行的代码。为什么不从文件中排除该部分,只在新文件中运行它呢。因此,您需要从SuchHandsuch_文件导入main,然后在新文件中键入main()来运行它。哦,等等,我想我现在可能明白了。。。因此,它允许您自己测试一个模块,非常快速地查看它的功能,同时仍然可以将其加载到主文件中,而无需在主文件中执行它,除非被调用。如果您不想在对main()进行更改后重复键入和删除main()以查看其工作方式,我认为这是一个好方法。