Python中的 if __name__ == ‘__main__

在Python中,if __name__ == '__main__': 这行代码有一个特定的用途和含义。为了理解它,我们需要先了解Python中的__name__变量以及Python脚本是如何执行的。

__name__变量

每个Python模块(python文件)都有一个内置的属性__name__。当模块被直接运行时,__name__的值会被设置为'__main__'。但是,如果模块是被导入到其他模块中的,__name__的值则会被设置为该模块的名字。

直接运行与导入的区别

  • 直接运行:当你直接运行一个Python文件(比如通过命令行python script.py),这个文件中的__name__会被设置为'__main__'
  • 被导入:如果你从另一个Python文件中通过import语句导入这个模块,那么在这个导入的模块中,__name__的值将是该模块的名字(比如script,如果导入语句是import script)。

if __name__ == '__main__':的作用

这个条件语句的作用是检查该模块是被直接运行还是被导入到其他模块中。如果这个条件为真(即模块被直接运行),那么位于这个条件语句下的代码块将会被执行。如果这个条件为假(即模块是被导入的),那么这部分代码将不会被执行。

使用场景

这种用法非常有用,因为它允许一个模块即可作为可执行脚本直接运行(执行一些操作,比如运行测试或者启动一个程序),也可以作为模块被其他脚本导入使用(提供函数、类等)。

# mymodule.py

def my_function():
    print("Hello from my_function!")

if __name__ == '__main__':
    # 这部分代码只有在mymodule.py被直接运行时才会执行
    print("mymodule is being run directly")
    my_function()
else:
    # 这部分代码在mymodule.py被导入时不会执行
    print("mymodule has been imported")

如果你直接运行mymodule.py,输出将会是:

 

mymodule is being run directly

Hello from my_function!

如果你从另一个Python文件中导入mymoduleimport mymodule),输出将会是:

mymodule has been imported

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值