Python导入文件时会读取文件内容,如果该文件只包含函数和数据,则Python会加载这些定义,而不会执行任何代码。但是,如果文件中包含顶级代码指令或调用函数命令,Python将把它们作为导入过程的一部分执行——这是我们通常不希望看到的。
前面我们提到,当一个文件被运行(而不是被导入)时,Python会将全局变量__name__设置为'__main__'字符串。我们可以利用这一点,使文件的主逻辑只在被运行时才执行,在文件被导入时不执行:
我们把这个模式称为“if name is main”模式,在本书编写的应用程序中会用到。
请记住,当文件被导入时,Python会将变量__name__设置为该模块的名称。