首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Python,不同类型的关键字

Python,不同类型的关键字
EN

Stack Overflow用户
提问于 2015-07-06 11:20:32
回答 3查看 132关注 0票数 2

在python中,与其他语言不同,可以将一些值归因于某些已经在python中预先定义的关键字。为什么?这不是全部,有些。

代码语言:javascript
复制
> range = 5
> range
> 5

而是为了

代码语言:javascript
复制
> def = 5
  File "<stdin>", line 1
    def = 5
        ^
SyntaxError: invalid syntax

一个可能的假设是:具有独特解析规则的懒散编码器。

对于那些刚加入python的人来说,是的,这实际上是有效的,比如True,False,range,len等等。我在大学时为python编写了一个编译器,如果我没记错的话,关键字列表中没有它们。

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2015-07-06 11:32:46

虽然range只是一个内置函数,但def是一个关键字。(大多数IDE应该用适当的颜色表示差异。)

函数--无论是否内置--都可以重新定义。它们不需要保留函数,但在您的示例中可以成为像range这样的整数。但你永远不能重新定义关键词。

如果您愿意,可以使用以下代码行(借用自here)打印所有Python关键字的列表:

代码语言:javascript
复制
import keyword
for keyword in keyword.kwlist:
    print keyword

输出:

代码语言:javascript
复制
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

对于Python3(注意没有print):

代码语言:javascript
复制
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

票数 4
EN

Stack Overflow用户

发布于 2015-07-06 11:29:41

关键字‘范围’是一个函数,您可以创建一些其他vars以及和,最大值.

另一方面,关键字'def‘需要一个已定义的结构来创建函数。

代码语言:javascript
复制
def <functionName>(args):
票数 1
EN

Stack Overflow用户

发布于 2015-07-06 11:32:36

您混淆了关键字和内置函数。def是关键字,但rangelen只是内置函数。任何函数都可以被重写,但关键字不能。

关键字的完整列表可以在keywords.kwlist中找到。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/31244525

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档