Python 提供多个特殊全局变量,用于获取模块和执行上下文信息。

核心特殊变量

变量说明典型值
__name__模块名称或 __main__"__main__" 或模块名
__file__模块文件路径/path/to/module.py
__doc__模块/类/函数文档字符串docstring 内容
__package__所属包名包名或 None
__all__import * 时导出的名称列表["func1", "ClassA"]
__builtins__内置函数命名空间内置函数字典
__loader__模块加载器对象加载器实例
__spec__模块规范信息ModuleSpec 对象

name 常见用法

if __name__ == "__main__":
    # 仅在直接运行时执行
    main()
  • 直接运行:__name__ = "__main__"
  • 被导入:__name__ = "模块名"

all 控制导出

# module.py
__all__ = ["public_func", "PublicClass"]
 
def public_func():
    pass
 
def _private_func():
    pass
 
# 使用
from module import *  # 只导入 public_func, PublicClass

file 获取路径

import os
 
# 获取当前模块所在目录
current_dir = os.path.dirname(__file__)
 
# 获取绝对路径
abs_path = os.path.abspath(__file__)