【发布时间】:2015-06-25 14:41:39
【问题描述】:
我今天在别人的代码中发现了以下构造:
try: True, False
except NameError: True = 1==1; False = 1==0
据我了解,它定义了 True 和 False(如果它们尚未定义)。因此,如果它们被定义,它不应该抛出NameError-Exception,对吧?
我已经在 shell 中为自己尝试过,它显示了 SyntaxError: can't assign to keyword
我的问题是,如果定义了 True 和 False,为什么它甚至会出现语法错误?如果 True 和 False 在我的系统上可用,它不应该只是通过异常处理而不显示语法错误吗?
【问题讨论】:
-
这些行使代码与 python 2.3 之前的版本兼容。 (见PEP 285)。但是 nobody 使用 python真的很少见。目前你最好尝试在python2.7/3+中使代码可移植
标签: python python-3.x