ap0*_*ap0 20 python python-3.x
我今天在别人的代码中找到了以下构造:
try: True, False
except NameError: True = 1==1; False = 1==0
Run Code Online (Sandbox Code Playgroud)
据我了解这一点,它定义True和False,如果他们尚未确定.所以如果定义它们就不应该抛出NameError-Exception,对吧?
我已经在shell中尝试了这个,它向我展示了它 SyntaxError: can't assign to keyword
我的问题是,如果定义了True和False,为什么它甚至会出现语法错误?如果我的系统上有True和False,那么它是否应该超过异常处理并且不显示语法错误?
nne*_*neo 23
此代码是为Python 2.x编写的,不适用于Python 3.x(其中True并且False是真正的关键字).
由于True和False是关键字在Python 3,你会得到一个SyntaxError你不能赶上.
由于Python的旧版本,此代码存在.在Python 2.2(2001年发布!)中,True并False没有作为预定义名称存在,因此这段代码将提供兼容的定义,以便后面的代码可以简单地使用True和False.
将Python 2.x代码转换为Python 3.x时,请删除这些行; 它们是历史的,在Python 3.x中没用.如果你在别人的代码中看到这些行,它们肯定表明该程序没有为Python 3编写或移植.
| 归档时间: |
|
| 查看次数: |
1468 次 |
| 最近记录: |