与其他语言不同,在 python 中,可以将一些值赋予一些已经在 python 中预定义的关键字。为什么? 这还不是全部,还有一些。
> range = 5
> range
> 5
但是为了
> def = 5
File "<stdin>", line 1
def = 5
^
SyntaxError: invalid syntax
一个可能的假设是 - 具有独特解析规则的懒惰编码器。
对于那些刚接触 python 的人来说,是的,这对于 True、False、range、len 等关键字确实有效。 我在大学时为 python 编写了一个编译器,如果我没记错的话,关键字列表中没有它们。
最佳答案
虽然 range
只是一个内置函数,但 def
是一个关键字。 (大多数 IDE 应该用适当的颜色指示差异。)
函数——无论是内置的还是非内置的——都可以重新定义。而且它们不必保留函数,但可以在您的示例中变成像 range
这样的整数。但是您永远无法重新定义关键字。
如果您愿意,可以使用以下代码行(借自 here)打印所有 Python 关键字的列表:
import keyword
for keyword in keyword.kwlist:
print keyword
输出:
and
as
assert
break
class
continue
def
del
elif
else
except
exec
finally
for
from
global
if
import
in
is
lambda
not
or
pass
print
raise
return
try
while
with
yield
对于 Python 3(注意没有 print
):
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
相比之下,内置函数可以在这里找到:https://docs.python.org/2/library/functions.html
关于Python,不同类型的关键字,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31244525/