📌  相关文章
📜  if __name__ == - Python (1)

📅  最后修改于: 2023-12-03 15:01:21.974000             🧑  作者: Mango

if name == "main" in Python

当我们编写Python程序时,经常会遇到这样一行代码:

if __name__ == "__main__":
    # some code here

但是,对于初学者来说,这行代码可能会很困惑。那么,这行代码的作用是什么呢?

作用

简单来说,当这行代码在Python模块中被执行时,它判断这个模块是被运行还是被导入。如果这个模块是被运行,那么一些代码将会被执行。如果这个模块是被导入,那么一些代码将不会执行。

举个例子,假设我们有一个Python模块叫做example.py,它的代码如下:

def add(a, b):
    return a + b

if __name__ == "__main__":
    print(add(1, 2))

当我们在终端运行这个模块时,就会输出3,因为这个模块是被运行的:

$ python example.py
3

但是,如果我们在另一个模块中导入了example.py,那么就不会输出3,因为这个模块是被导入的:

import example

print(example.add(1, 2))

输出结果为3

原理

在Python中,每个模块都有一个名字。当Python解释器执行一个模块时,它会将这个模块的名字存储在一个特殊的变量__name__中。如果这个模块是被导入的,那么它的名字就是模块名;如果这个模块是被运行的,那么它的名字就是__main__

因此,当我们写下if __name__ == "__main__":这行代码时,实际上是在判断当前模块是否是被运行的模块,如果是,就会执行一些代码。

总结

if __name__ == "__main__":这行代码的作用是帮助我们将一些代码分为两类:一类是在模块被运行时执行的代码,另一类是在模块被导入时不执行的代码。通过使用这行代码,我们可以写出更加灵活和可复用的Python模块。