Python的两种变体';s的主要功能

Python的两种变体';s的主要功能,python,Python,在编写个人使用的脚本时,我习惯于这样做: def do_something(): # Do something. if __name__ == '__main__': do_something() 或者,我们也可以这样做: def do_something(): # Do something. do_something() # No if __name__ thingy. 我知道第一种形式在区分将脚本作为模块导入还是直接调用时很有用,但对于只会执

在编写个人使用的脚本时,我习惯于这样做:

def do_something():
    # Do something.

if __name__ == '__main__':
    do_something()
或者,我们也可以这样做:

def do_something(): 
    # Do something.  

do_something()      # No if __name__ thingy. 

我知道第一种形式在区分将脚本作为模块导入还是直接调用时很有用,但对于只会执行(且从未导入)的脚本,是否有理由选择一种形式而不是另一种形式?

即使脚本只打算执行,不管怎样,有时导入它可能很有用——在交互式shell中,通过文档生成工具,在单元测试中,或者执行计时。因此,经常使用更一般的形式是不会有任何伤害的。

第一种形式只是一种良好的实践。编写计算机程序的永恒法则之一是,在遥远的将来(比如在你被分配到另一个项目、退出或对维护代码感到厌倦之后),有人会希望将你的“始终独立”脚本或其部分用于其他目的

如果我们假设你绝对是一个摇滚明星程序员,并且你源文件中的每个角色都充满了天才(是吗?),那么其他人会看到你的作品,被你的才华打倒在地,并想要使用它是有道理的

现在有两种选择,一种是让他们将你的代码剪切粘贴到一个文件中,并在上面写上他们的名字,这是一种非常不枯燥的方式,让你非凡的思维贡献归功于其他人,或者你可以只添加少量代码,让他们导入你的模块,直接使用类或函数,让他们在遇到编程之前意识到他们对编程的了解是多么的少


你的选择

就像斯文说的,测试!