首页 >后端开发 >Python教程 >if __name__ =&#__main__&# 在 Python 中做什么?

if __name__ =&#__main__&# 在 Python 中做什么?

PHPz
PHPz原创
2024-07-29 07:00:03543浏览

What does if __name__ =

你可能在 Python 脚本中经常看到这行代码 if __name__=="__main__": ,但不知道它的实际用途是什么。别担心,因为在这篇简短的博客中我们将讨论这个

当您直接运行程序或脚本时,Python 会自动将“main”分配给特殊的 name 变量。这样做基本上是为了表明该文件是此处的“主”脚本,并且正在直接运行而不是导入到另一个脚本中。

要理解这一点,请创建一个新的 Python 脚本,假设将其命名为“example.py”并写入:

print("Name of Script: ", __name__)

运行此命令,您将看到输出的脚本名称:__main__。这只是因为文件是直接运行的。

现在,创建另一个 python 脚本文件并将 example.py 导入到此文件中。运行它,您将看到不同的结果,显示“脚本名称:示例”。这只是因为现在我们不是直接运行它,而是导入脚本并间接运行它。因此,Python 现在显示文件的实际名称。

让我们对示例文件进行一些更改,以便我们可以更好地理解它。

def s_name():
    print("Name of Script: ", __name__)

s_name()

def greet():
    print("Hello! How are you doing?")

if __name__=="__main__":
    greet()

现在,如果您直接运行此命令,所有内容都将完美执行,但如果您运行导入 example.py 脚本的其他文件,您会注意到greet 函数调用未执行。这是为什么?

这是因为 if 条件。条件的作用是检查文件是否正在直接运行。如果直接运行,main 将被分配给特殊变量 name,这将使此条件成立,并且条件内的所有内容将照常运行。

但另一方面,如果您将其导入另一个文件并从那里间接运行它,那么条件语句将不为真,并且放置在条件中的任何内容都不会被执行。

这就是这个条件语句的意义。 当我们将脚本导入为模块时,它可以防止 Python 解释器自动运行不必要的代码行。

但是,即使我们将脚本作为模块导入,我们也可以调用这些函数。例如:

import example

example.greet()

这样,即使条件不满足,我们也可以完美地调用导入模块中的任何函数。

以上是if __name__ =&#__main__&# 在 Python 中做什么?的详细内容。更多信息请关注PHP中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn