You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

为何Python内置常量无法通过__builtins__的点语法访问?

关于Python中False作为内置常量的属性访问问题

根据Python官方文档的Built-in Constants章节,False是内置常量之一。我们可以通过getattr函数获取它:

>>> print(getattr(__builtins__, "False"))
False

但直接使用点语法访问__builtins__.False会触发语法错误:

>>> print(__builtins__.False)
File "<stdin>", line 1
    print(__builtins__.False)
                       ^^^^^
SyntaxError: invalid syntax

原因在于,Python解释器在语法解析阶段就会把False识别为关键字/内置常量,不会将其当作普通属性名执行后续的属性查找操作。

虽然getattr(x, 'foobar')在文档中被说明等价于x.foobar,但这个规则对Python的保留关键字并不适用:点语法中如果属性名是关键字,会直接被判定为语法无效;而getattr通过字符串传递属性名,绕过了语法解析阶段的关键字校验,因此能正常完成属性查找。

内容的提问来源于stack exchange,提问作者jensa

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.20 22:39:51