Python3:关键字和内置函数有什么区别?

19 投票
1 回答
2805 浏览
提问于 2025-04-17 06:43

在Python 3中,

>>> import keyword
>>> keyword.kwlist

>>> import builtins
>>> dir(builtins)

是两个不同的列表,但它们有一些共同的值,特别是

>>> set(dir(builtins)) & set(keyword.kwlist)
{'False', 'True', 'None'}

Python中的关键字和内置函数有什么区别?另外,'False', 'None', 'True'什么时候是关键字,什么时候是内置函数?(这有区别吗?)

1 个回答

26

关键字是编程语言中的基本构件,由解析器处理。这些词是保留的,不能用作变量名。你可以在这里查看这些关键字的列表:http://docs.python.org/reference/lexical_analysis.html#keywords

内置函数是一些常用的、预先加载的功能、常量、类型和异常的集合。你可以在这里找到这些内置函数的详细信息:http://docs.python.org/library/functions.html

在Python 3中,有几个特殊的词,比如 FalseNoneTrue,它们是内置常量,解析器会保护这些常量不被重新赋值。这意味着你不能意外地把它们改成其他值,比如 True=10。因为它们是关键字,所以这种赋值会被阻止:

>>> True = 10
SyntaxError: assignment to keyword

而其他的内置函数则没有这种保护,可以被重新赋值,比如可以用 __builtins__.list = mylist 来改变它。

撰写回答