Python 提供多个特殊全局变量,用于获取模块和执行上下文信息。
核心特殊变量
| 变量 | 说明 | 典型值 |
|---|
__name__ | 模块名称或 __main__ | "__main__" 或模块名 |
__file__ | 模块文件路径 | /path/to/module.py |
__doc__ | 模块/类/函数文档字符串 | docstring 内容 |
__package__ | 所属包名 | 包名或 None |
__all__ | import * 时导出的名称列表 | ["func1", "ClassA"] |
__builtins__ | 内置函数命名空间 | 内置函数字典 |
__loader__ | 模块加载器对象 | 加载器实例 |
__spec__ | 模块规范信息 | ModuleSpec 对象 |
name 常见用法
1
2
3
| if __name__ == "__main__":
# 仅在直接运行时执行
main()
|
- 直接运行:
__name__ = "__main__" - 被导入:
__name__ = "模块名"
all 控制导出
1
2
3
4
5
6
7
8
9
10
11
| # module.py
__all__ = ["public_func", "PublicClass"]
def public_func():
pass
def _private_func():
pass
# 使用
from module import * # 只导入 public_func, PublicClass
|
file 获取路径
1
2
3
4
5
6
7
| import os
# 获取当前模块所在目录
current_dir = os.path.dirname(__file__)
# 获取绝对路径
abs_path = os.path.abspath(__file__)
|
Comments