之前我也查过很多资料,想要弄清楚 if name == ‘main’: 有什么作用,网上会告诉你当这个文件为当前执行文件时 name = ‘main’,下面的代码会执行之类的,完全搞不懂!典型的中式为了解释而解释。下面将给你真正的解释:
当我们刚开始编程时,定义的函数和执行的命令全部放在一个文件中,也不存在什么调用,没有使用 if name == ‘main’: 的情景。
当我们开始熟练时,我们开始将函数放在一个统一的文件里,例如tools.py
,比方说我在tools.py
里定义了一个函数func_A
。在tools.py
文件里我们在函数的外面写了一点测试函数是否可正常运行的代码,并打印func_A
可以正常运行。现在我们创建一个主文件a.py
,我们需要从tools.py
里导入func_A
函数,于是我们使用from tools import func_A
。问题出现了当我们执行这个命令from tools import func_A
后,屏幕上打印出了func_A
可以正常运行,可是这个命令不是写在函数外面的么?我们现在只想要导入func_A
函数而不是执行tools.py
的所有命令,这就是python的逻辑:即使你只是导入func_A
,python也会执行tools.py
文件的顶级表达式(也就是我们写在func_A
函数外面的命令)以正常初始化定义的函数。如果你不希望那部分代码被执行,可以写在 if name == ‘main’: 下,这样当导入这个函数的时候函数外面的顶层代码将不会被使用。
为什么要写 python if __name__ == ‘__main__‘: 是什么意思,有什么作用
于 2023-08-23 13:21:21 首次发布