可以"与"在Python中用作标识符?

时间:2016-01-21 23:16:19

标签: python python-2.7 python-2.6

我正在努力调整用于Python 2.7的第三方Python包(它被断言)与Python 2.6一起使用,虽然已经过时,但仍然是我职权范围内许多机器上的标准Python。

我一直在使用compileall模块来帮助我识别兼容性问题,事实上我很少见。其中只有一个证明非常具有抵抗力:提供给我的代码使用" with"作为一个标识符在几个地方,作为关键字参数

newitems.append(Data(item[:, Numeric.NewAxis], with='lines'))

并作为属性名称

self.with = keyw['with']

。字节编译器barf使用"和",因为它似乎应该,因为""自Python 2.6以来一直是一个关键字。

由于该模块在2010年初具有明显的最新修订日期,并且因为它具有可以追溯到更早的谱系,我倾向于认为该模块在Python 2.7中从未起作用(如声称的那样) )甚至在Python 2.6中也没有。还有其他合理的结论吗?除了用"替换"之外还有任何明智的方法吗?在违规情境中使用不同的标识符?

1 个答案:

答案 0 :(得分:5)

不,它不能。 with在Python中被列为保留字,也称为关键字。来自Python 2.7 Docs

  

以下标识符用作保留字或该语言的关键字,不能用作普通标识符。

Python 2.6 Docs甚至是Python 2.5 Docs中也是如此。这意味着该模块不起作用,并且很可能唯一的解决方案是将with更改为另一个单词。如果您使用的是Vim,this可能会帮助您轻松完成任务。

尝试在Python代码中使用with会产生SyntaxError: invalid syntax

>>> with = True
  File "<stdin>", line 1
    with = True
         ^
SyntaxError: invalid syntax