skip to content
Logo Lostman_Wang的小站

Python数据类型-内置变量(built-ins)

Python 在启动解释器后,会预先创建一批“全局可见、无须导入即可使用”的 内置变量(built-ins)。

它们分为两类:

  1. 内置常量(值固定,直接拿来用)
  2. 内置特殊变量(解释器在特定时机自动注入或约定用途的变量)

一、内置常量(Built-in Constants)

变量语法/取值作用与说明示例
NoneNone单例空值;函数无显式 return 时默认返回值;也常用于默认参数占位符x = None if not data else data
True / FalseTrue / Falsebool 类型的两个实例flag = 3 < 5True
Ellipsis... (或 Ellipsis单例,切片占位、类型提示、NumPy 中表“省略”def func(): ...Array[..., int]
NotImplementedNotImplemented二元运算未实现时返回,触发解释器尝试反向运算__add__return NotImplemented
__debug____debug__TrueFalse若 Python 以 -O / -OO 启动则为 False;常用于断言开关if __debug__: print('debug')

二、内置特殊变量(解释器自动注入)

1、作用域与模块元数据

变量出现位置用途示例
__name__任何 .py 文件当前模块名;直接执行时为 '__main__'if __name__ == '__main__': main()
__file__模块文件当前模块的绝对/相对路径Path(__file__).parent
__package__模块所在包的点分名;顶层脚本为 None用于相对导入
__path__包(__init__.py列表,存放包目录路径;命名空间包也可写__path__.append('extra')
__spec__模块当前模块的 ModuleSpec(PEP 451)__spec__.origin
__loader__模块加载器对象自定义导入逻辑时用到

2、类与实例

变量出现位置用途示例
__class__实例方法内部指向实例所属类super().__init__() 等效于 super(__class__, self)
__dict__模块 / 类 / 实例存放命名空间的可写 dictobj.__dict__['x'] = 1
__slots__类体限制实例属性,省内存class P: __slots__ = ('x', 'y')

3、函数与代码对象

变量出现位置用途示例
__doc__模块 / 类 / 函数 / 方法文档字符串(docstring)print(func.__doc__)
__annotations__函数 / 类类型注解字典def f(x: int) -> str: ...f.__annotations__
__defaults__函数默认参数元组f.__defaults__
__code__函数代码对象f.__code__.co_filename
__globals__函数定义时所在全局命名空间 dictf.__globals__['sys']

4、执行环境

变量出现位置用途示例
__builtins__任何作用域指向内置命名空间(dict 或 module)__builtins__.len
__import__任何地方内置导入函数,可被重写做钩子__import__('os.path')

三、交互式解释器专用变量

变量出现位置作用示例
_REPL上一次表达式的结果>>> 3+47;再输入 _7