if __name__ == ‘__main__‘详细解释及实操演示

在Python中,每个模块都有一个内置的变量 name,用于表示当前模块的名称。当一个Python文件被执行时,Python解释器会首先将该文件作为一个模块导入,并执行其中的代码。此时,__name__的值为模块的名称。

if name == ‘main’ 是一个常见的用法,它的意思是:当该模块被直接执行时,该条件成立,执行其下的代码;当该模块被导入时,该条件不成立,其下的代码不会被执行。

这句话可能直接看不是很理解,那么我们通过实际操作来看看。

下面是一些例子:
假设你有一个名为 my_module.py 的Python模块,它包含以下代码:

def foo():
    print("Hello, world!")

print("This is my_module.py")

if __name__ == '__main__':
    foo()

当你在终端中运行 python my_module.py 时,由于该模块被直接执行,if name == ‘main’ 条件成立,foo() 函数会被执行并输出 “Hello, world!”,同时也会输出 “This is my_module.py”。
在这里插入图片描述
当你在其他的Python程序中导入 my_module 时,if name == ‘main’ 条件不成立,foo() 函数不会被执行,但是会输出 “This is my_module.py”。

import my_module

my_module

在这里插入图片描述
这是因为在导入my_module模块时,Python会将该模块的名称赋值给__name__变量,因此if name == 'main’语句不会执行。而当我们直接执行my_module.py文件时,name__变量的值为__main,因此if name == 'main’语句会执行foo()函数。

简单来说在Python中,每个模块都有一个内置的变量__name__,用于表示当前模块的名称。当模块被直接执行时,__name__的值就是字符串’main’,而当模块被导入到其他模块中使用时,__name__的值就是模块的名称(不包含后缀.py)。

因此,在上面的代码中,当我们直接运行my_module.py时,其中的if name == ‘main’:语句会判断当前模块是否为主模块,如果是主模块就会执行下面的代码。而当我们在main.py中导入my_module模块时,if name == ‘main’:判断条件为假,因为此时my_module模块不是主模块,所以其中的代码不会被执行。

总之,这种写法可以让模块既可以独立运行,也可以被其他模块导入使用。

  • 47
    点赞
  • 119
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值