今天,我在别人的代码中发现了以下构造:
try: True, False
except NameError: True = 1==1; False = 1==0
据我所知,它定义了True
和False
,如果它们还没有定义的话.所以如果定义了它们,就不应该抛出NameError
异常,对吗?
我在一个贝壳里试过这个,结果显示我有SyntaxError: can't assign to keyword
个
我的问题是,如果定义了True和False,为什么它甚至会抛出语法错误?如果我的系统上有True和False,它不应该只经过异常处理而不显示语法错误吗?