📜  Python主函数

📅  最后修改于: 2022-05-13 01:55:11.151000             🧑  作者: Mango

Python主函数

主函数就像程序的入口点。然而, Python解释器从第一行开始运行代码。代码的执行从起始行开始,逐行执行。主要函数在哪里或它在哪里都没有关系。

由于Python中没有main()函数,当运行Python程序的命令被赋予解释器时,将执行 0 级缩进的代码。但是,在此之前,它将定义一些特殊变量。 __name__就是这样一个特殊变量。如果源文件作为主程序执行,则解释器将__name__变量设置为具有值__main__ 。如果此文件是从另一个模块导入的, __name__将设置为模块的名称。
__name__是一个内置变量,计算结果为当前模块的名称。

例子:

# Python program to demonstrate
# main() function
  
  
print("Hello")
  
# Defining main function
def main():
    print("hey there")
  
  
# Using the special variable 
# __name__
if __name__=="__main__":
    main()

输出:

Hello
hey there

执行上述程序时,解释器将 name 的初始值声明为“main”。当解释器到达 if 语句时,它检查 name 的值,当 if 的值为 true 时,它运行 main函数,否则不执行 main函数。

作为模块的主要函数

现在,当我们将Python脚本作为模块导入时, __name__变量的值与导入的Python脚本的名称相同。

示例:假设有两个文件(File1.py 和 File2.py)。 File1 如下。

# File1.py 
    
print("File1 __name__ = %s" %__name__)
    
if __name__ == "__main__": 
    print("File1 is being run directly")
else: 
    print("File1 is being imported")

输出:

File1 __name__ = __main__
File1 is being run directly

现在,当将 File1.py 导入 File2.py 时,__name__ 的值会发生变化。

# File2.py 
    
import File1 
    
print("File2 __name__ = %s" %__name__)
    
if __name__ == "__main__":
    print("File2 is being run directly")
else: 
    print("File2 is being imported")

输出:

File1 __name__ = File1
File1 is being imported
File2 __name__ = __main__
File2 is being run directly

如上所见,当File1.py直接运行时,解释器将__name__变量设置为__main__ ,当通过File2.py导入运行时,__name__变量设置为Python脚本的名称,即File1。因此,可以说如果 __name__ == “__main__” 是在使用Python File1.py 之类的命令从命令行运行脚本时运行的程序部分。