Python AttributeError:'module'对象没有属性'init'

时间:2011-08-11 23:45:00

标签: python python-idle livewires

我正在运行一个简单的python文件:

from livewires import games

games.init(screen_width = 640, screen_height = 480, fps = 50)

games.screen.mainloop()

当我在IDLE中运行时,我会在标题中打印出错误。 我从一本书中复制并粘贴了这段代码。我现在处于初学者的早期阶段,所以我不太了解。我很确定我已正确安装了livewires,因为我已经使用其模块运行其他程序。 (天啊,我知道这可能不是正确的术语,抱歉。)我并不是在寻找解决这个问题的方法,(虽然那也很好)我只是希望有人可以解释一下究竟是什么问题。我从书中复制了代码,所以我不明白我做错了什么。我100%肯定也没有错别字。

4 个答案:

答案 0 :(得分:3)

好吧,四处搜索,似乎这是livewires网站:Livewires Home Page,可以下载他们的livewires包。

另外,一些代码来自:Chapter 11看起来像他在这里发布的内容(“The Pizza Panic Game”)。

下载和解压缩livewires表明游戏模块中确实没有init功能(正如已经提到的评论)。

这本书都有非工作的例子(令人怀疑,考虑到它解释这个例子的深度);或 livewires包在书写和现在之间发生了变化(更有可能)。

livewires网站上有其他例子,我认为你会有更多的成功 我建议你抛弃这本书,因为你可能会继续遇到像这样的障碍。谷歌搜索将发布许多其他免费的python教程,这些教程更新,并且更容易理解。

此页面为初学者提供了一些链接:Beginners Guide

答案 1 :(得分:2)

可以从书籍配套网站下载使用“绝对初学者的Python编程”代码的旧版livewires:

http://www.delmarlearning.com/companions/content/1435455002/downloads/index.asp?isbn=1435455002

答案 2 :(得分:1)

我刚开始使用同一本书,Python Programming Third Ed。由迈克尔道森,并遇到了同样的问题。自书写完以来,它已经发生了变化。

如果您仍想创建窗口,请使用我使用的代码并运行:

from livewires import games

#This is the code M. Dawson has in the book
#games.init(screen_width = 640, screen_height = 480, fps = 50)
#games.screen.mainloop()

my_screen = games.Screen(width = 640, height = 480)
my_screen.mainloop(fps = 50)

现在将屏幕视为要实例化的对象。 Screen类不再在其构造函数中接受 fps ,现在将 fps 传递给 mainloop 方法。如果未将 fps 传递给 mainloop 方法,则默认为50。

答案 3 :(得分:0)

我遇到了同样的问题,然后我从他链接到的slejdops网站下载了代码。听起来像它的创造者是开放的想法,因为他们总是保持这些东西与教科书锁定。这使它既合法又合法。 :)

所以去这里。玩得开心,祝你好运: http://www.delmarlearning.com/companions/content/1435455002/downloads/index.asp?isbn=1435455002