【发布时间】:2019-07-05 00:25:23
【问题描述】:
我们可以得到一个Python关键字列表如下:
>>> import keyword
>>> keyword.kwlist
['False', 'None', 'True', 'and', 'as', 'assert', 'break', 'class', 'continue', 'def', 'del', 'elif', 'else', 'except', 'finally', 'for', 'from', 'global', 'if', 'import', 'in', 'is', 'lambda', 'nonlocal', 'not', 'or', 'pass', 'raise', 'return', 'try', 'while', 'with', 'yield']
很酷,但我没想到会在那里看到False、None 和True。它们是内置对象。
为什么是 True、False 和 None 关键字,但 int 不是?是什么真正使某些东西成为 Python 中的关键字?
编辑:我说的是 Python 3
【问题讨论】:
-
你为什么会期待
int在里面?如果 python 有明确的类型,当然,也许会有一个int关键字,但在 python 中int()是一个函数。 -
Python 版本在这里很重要。
-
这里可能存在一些混淆,因为人们可能会错误地将关键字视为“不能在标识符通常使用的表达式中使用的词”。这准确地描述了 99% 的关键字——例如,
2 + def是不合法的语法。但是 False、None 和 True 可以用在表达式中,所以它们似乎违反了规则。但事实是,没有这样的规则。如果关键字代表一个对象,那么您可以像使用对象一样使用它。