Python导入导致语法错误

时间:2012-05-03 14:01:57

标签: python

我是一位老式的Pascal程序员,是OOP和Python的新手,所以请耐心等待......我有一本关于Python的书,我先在这里搜索过(虽然很多类似的线程 - 不是检查每一个)...

我正在尝试编写一个程序,以包含我公司其他人编写的现有模块。根据我的Python书,我应该能够导入整个模块或只是特定的类。该书说,当使用'import'时,它实际上运行指定的代码(不像我在Pascal中习惯的INHERIT)。

我在mod.py模块中有这个结构,我想使用:

from x.y.z import stuff

class c1(superclass):
    def func1(self):
        ....
    def func2(self, db):
        ....
        with self.db as handler:
            ....

我有一个基本的脚本test.py就是这样:

from mod import c1

print "Hello"

当我执行'python test.py'时,我收到错误消息:

'with self.db as handler' - invalid syntax

我想我在这里缺少一些基本的东西,所以任何帮助都非常赞赏。

3 个答案:

答案 0 :(得分:2)

在Python 2.5中,with语句默认不可用。但它就在那里! :-)尝试添加

from __future__ import with_statement

到您的mod.py或使用Python 2.6 +。

答案 1 :(得分:2)

您修改了错误消息,但我认为它看起来像

  File "mod.py", line 8
    with self.db as handler:
         ^
SyntaxError: invalid syntax

这意味着您的Python版本太旧而无法知道with statement。更新到支持python 2.6 +。

的实现

在Python 2.5中,您还可以在mod.py的顶部添加__future__ declaration,如下所示:

from __future__ import with_statement

答案 2 :(得分:0)

鉴于该行看起来是什么样的,错误是语法错误,我会查看它之前的行,并寻找无与伦比的大括号或引号。