Python3:关键字和内置函数有什么区别?
在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中,有几个特殊的词,比如 False、None 和 True,它们是内置常量,解析器会保护这些常量不被重新赋值。这意味着你不能意外地把它们改成其他值,比如 True=10
。因为它们是关键字,所以这种赋值会被阻止:
>>> True = 10
SyntaxError: assignment to keyword
而其他的内置函数则没有这种保护,可以被重新赋值,比如可以用 __builtins__.list = mylist
来改变它。