if __name__ == ‘__main__‘:用法

python文件有两种使用方法:
第一种:直接作为脚本执行
第二种:import到其他的python脚本中被调用(模块重用)执行,也就是作为模块(库)被导入执行

python中 if name == 'main’的作用就是控制这两种情况执行代码的过程,在 if name == ‘main’: 行之后的代码只有在第一种情况下(即文件作为脚本直接执行)才会被执行,而 import 到其他脚本中是不会被执行的

栗子
test_01.py

# coding=gbk

def father(a, b):
    print("这是第一部分的结果")
    c = a + b
    return c


if __name__ == '__main__':
    print(father(2, 1))
    print("这是第二部分")

执行结果:
在这里插入图片描述

test_01.py引入另一脚本test_02.py中

# coding=gbk
import test_01

if __name__ == '__main__':
    print(test_01.father(1,2))

执行结果:
在这里插入图片描述
并未输出 “这是第一部分的结果” 即if name==‘main’:内的语句没有被执行。

运行原理
每个python模块都包含内置的变量__name__,当运行模块被执行的时候__name__等于文件名(包含了后缀.py);如果import到其他模块中,则__name__等于模块名称(不包含后缀.py)。而’main’等于当前执行文件的名称(包含了后缀.py)。进而当模块被直接执行时,name == 'main’结果为真,所以后续代码可以继续执行。

在上面的例子中,test_02.py引入了test_01.py,在test_02.py中执行调用时__name__ == 'main’结果不为真,则后续的代码即在这里插入图片描述
这里的内容不会执行。

`if __name__ == "__main__":` 是 Python 中常用的一个条件语句,它通常用于判断当前模块是否是运行在主程序中,或者是被其他模块 import 而导入运行的。 具体来说,当一个 Python 文件直接被执行时,`__name__` 变量的值会被自动设置为 `"__main__"`,如果被导入时,`__name__` 的值就是模块名(即文件名)。 因此,使用 `if __name__ == "__main__":` 可以方便地将一些只在作为主程序运行时才执行的代码放在这个条件语句中,而避免在模块被导入时执行这些代码。 下面是一个简单的示例,假设我们有一个名为 `example.py` 的 Python 模块,里面包含一些函数和变量: ``` # example.py def add(x, y): return x + y def sub(x, y): return x - y pi = 3.1415926 ``` 如果我们在命令行中直接执行 `example.py`,那么 `__name__` 的值就是 `"__main__"`,我们可以在条件语句中添加一些测试代码: ``` # example.py def add(x, y): return x + y def sub(x, y): return x - y pi = 3.1415926 if __name__ == "__main__": print("This is the main program.") print("The result of 1 + 2 is", add(1, 2)) print("The value of pi is", pi) ``` 如果我们将 `example.py` 导入到另一个模块中,那么 `__name__` 的值就是模块名(即文件名),条件语句中的代码就不会被执行: ``` # test.py import example print("This is a test program.") print("The result of 3 - 4 is", example.sub(3, 4)) ``` 这样,当我们执行 `test.py` 时,`example.py` 中的测试代码就不会被执行,只有 `test.py` 的代码会被执行。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值