Python中的关键字到底是什么?

时间:2019-02-11 13:33:53

标签: python object keyword

我们可以获得如下所示的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']

很酷,但是我没想到在那里会看到FalseNoneTrue。它们是内置对象。

为什么TrueFalseNone是关键字,但int不是关键字?在Python中什么真正使关键字成为了关键词?

编辑:我在谈论Python 3

3 个答案:

答案 0 :(得分:8)

关键字是保留名称,因此您无法为其指定关键字。

>>> True = 0
  File "<stdin>", line 1
SyntaxError: can't assign to keyword

int是一种类型;完全可以重新分配它:

>>> int = str
>>>

(不过,我真的不推荐这样做。)

答案 1 :(得分:1)

Python与Javascript不同。在Javascript中,您可以执行undefined = "defined"之类的操作(更新:此问题已得到解决)。

关键字取决于您使用哪个python。例如:async3.7中的新关键字。

事情并非总是如此,在Python 2中True = False是有效的...

>>> True = False
>>> True
False
>>> True is False
True

所以“它们是内置对象。”,是的,但是新版本的python可以防止您变得愚蠢。这是为什么...

的唯一原因

(自python 2.7起)新的关键字是:

False
None
True
async
await
nonlocal

当然,execprint不再是关键字。

答案 2 :(得分:0)

在python 2.6中,您可以做类似True = False(确实令人困惑)

这可能对您有帮助link