我们可以获得如下所示的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
答案 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。例如:async
是3.7
中的新关键字。
事情并非总是如此,在Python 2中True = False
是有效的...
>>> True = False
>>> True
False
>>> True is False
True
所以“它们是内置对象。”,是的,但是新版本的python可以防止您变得愚蠢。这是为什么...
的唯一原因(自python 2.7起)新的关键字是:
False
None
True
async
await
nonlocal
当然,exec
和print
不再是关键字。
答案 2 :(得分:0)
在python 2.6中,您可以做类似True = False(确实令人困惑)
这可能对您有帮助link