2

我是 Python 新手,并通过 O'Reilly“学习 Python”系列进行学习。我被困在一个搁置的例子上,无法弄清楚为什么该程序不起作用。我正在尝试构建一些示例数据,然后将其加载到搁置文件中。奇怪的是,当我将它输入 IDLE shell 时它可以工作,但当我将它输入 .py 文件并尝试运行它时它就不行。这是我的代码:

from Python_Learning.person import Person, Manager

bob = Person('Bob Smith', 'dev', 60000)
sue = Person('Sue Jones', job = 'designer', pay = 100000)
tom = Manager('Tom Jones', 1000000)

import shelve
db = shelve.open('persondb')
for object in (bob, sue, tom):
    db[object.name] = object
db.close()

同样,当我在 IDLE shell 上运行此代码时,我没有问题,但是当我从 .py 文件运行时,我收到以下错误:

回溯(最后一次调用):文件“Documents/Python_Learning/shelve.py”,第 7 行,在 import shelve 文件“Documents/Python_Learning/shelve.py”,第 9 行,在 db = shelve.open('persondb') AttributeError:“模块”对象没有属性“打开”

如果有帮助,这里是我在 Snow Leopard 上运行的 Python 版本的信息:

达尔文上的 Python 3.1.1 (r311:74543, Aug 24 2009, 18:44:04) [GCC 4.0.1 (Apple Inc. build 5493)]

感谢您对新手的帮助!

将要

4

1 回答 1

7

将您的模块重命名为其他名称shelve.py- 您正在导入自己。

于 2011-07-19T13:44:13.877 回答