菜鸟教程 -- 学的不仅是技术,更是梦想!

Python 3 教程
Python3 教程 Python3 简介 Python3 环境搭建 Python3 VScode Python3 基础语法 Python3 基本数据类型 Python3 数据类型转换 Python3 解释器 Python3 注释 Python3 运算符 Python3 数字(Number) Python3 字符串 Python3 列表 Python3 元组 Python3 字典 Python3 集合 Python3 条件控制 Python3 循环语句 Python3 编程第一步 Python3 推导式 Python3 迭代器与生成器 Python3 with Python3 函数 Python3 lambda Python3 装饰器 Python3 数据结构 Python3 模块 Python __name__ Python3 输入和输出 Python3 File Python3 OS Python3 错误和异常 Python3 面向对象 Python3 命名空间/作用域 Python 虚拟环境的创建 Python 类型注解 Python3 标准库概览 Python3 实例 Python 测验

Python3 高级教程

Python3 正则表达式 Python3 CGI编程 Python3 MySQL(mysql-connector) Python3 MySQL(PyMySQL) Python3 网络编程 Python3 SMTP发送邮件 Python3 多线程 Python3 XML 解析 Python3 JSON Python3 日期和时间 Python3 内置函数 Python3 MongoDB Python3 urllib Python uWSGI 安装配置 Python3 pip Python3 operator Python math Python requests Python random Python OpenAI Python 有用的资源 Python AI 绘画 Python statistics Python hashlib Python 量化 Python pyecharts Python selenium 库 Python 爬虫 Python Scrapy 库 Python Markdown Python sys 模块 Python Pickle 模块 Python subprocess 模块 Python queue 模块 Python StringIO 模块 Python logging 模块 Python datetime 模块 Python re 模块 Python csv 模块 Python threading 模块 Python asyncio 模块 Python PyQt Python for 循环 Python while 循环
(追記) (追記ここまで)

Python __name__ 与 __main__

平时我们经常会看到这样的 Python 代码:

if __name__ == "__main__":
 main() 

在 Python 中,__name____main__ 是两个与模块和脚本执行相关的特殊变量。

__name____main__ 通常用于控制代码的执行方式,尤其是在模块既可以作为独立脚本运行,也可以被其他模块导入时。

1. __name__ 变量

__name__ 是一个内置变量,用于表示当前模块的名称。

__name__ 的值取决于模块是如何被使用的:

当模块作为主程序运行时:__name__ 的值被设置为 "__main__"

当模块被导入时:__name__ 的值被设置为模块的文件名(不包括 .py 扩展名)。

假设有一个 module.py 文件:

print(f"模块的 __name__ 值: {__name__}")
输出会是:
模块的 __name__ 值: __main__

2. __main__ 的含义

__main__ 是一个特殊的字符串,用于表示当前模块是作为主程序运行的。

__main__ 通常与 __name__ 变量一起使用,以确定模块是被导入还是作为独立脚本运行。

3. 使用 if __name__ == "__main__": 的常见模式

在 Python 中,常见的做法是在模块的末尾添加以下代码块:

实例

if __name__ == "__main__":
# 这里的代码只有在模块作为主程序运行时才会执行
main()

这种模式允许模块在被导入时不会执行某些代码,而只有在作为独立脚本运行时才会执行这些代码。


实例

假设我们有一个名为 example.py 的模块:

example.py 文件模块:

def greet():
print("来自 example 模块的问候!")

if __name__ == "__main__":
print("该脚本正在直接运行。")
greet()
else:
print("该脚本作为模块被导入。")

直接运行 example.py

如果你直接运行 example.py,输出将是:

该脚本正在直接运行。
来自 example 模块的问候!

在这种情况下,__name__ 的值是 "__main__",所以 if __name__ == "__main__": 块中的代码会被执行。

导入 example.py

如果你在另一个脚本中导入 example.py,例如:

实例

# another_script.py

import example

example.greet()

输出将是:

该脚本作为模块被导入。
来自 example 模块的问候!

在这种情况下,__name__ 的值是 "example"(模块名),所以 if __name__ == "__main__": 块中的代码不会被执行。

总结

  • __name__ 是一个内置变量,表示当前模块的名称。

  • 当模块作为主程序运行时,__name__ 的值是 "__main__"

  • 当模块被导入时,__name__ 的值是模块的文件名。

  • 使用 if __name__ == "__main__": 可以控制模块在被导入时不会执行某些代码,而只有在作为独立脚本运行时才会执行这些代码。

AI 思考中...

点我分享笔记

  • 昵称 (必填)
  • 邮箱 (必填)
  • 引用地址

AltStyle によって変換されたページ (->オリジナル) /