繁体   English   中英

Python AttributeError: 'module' object 没有属性 'init'

[英]Python AttributeError: 'module' object has no attribute 'init'

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

from livewires import games

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

games.screen.mainloop()

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

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

此外,来自此的一些代码: 第 11 章看起来像他在这里发布的内容(“披萨恐慌游戏”)。

下载并解压livewires显示游戏模块中确实没有init function(正如评论已经提到的)。

要么这本书有无效的例子(值得怀疑,因为它解释了这个例子的深度); 或者livewires package 在本书写作和现在之间发生了变化(更有可能)。

livewires 网站上有其他示例,我认为您将获得更大的成功。
我建议你放弃这本书,因为你很可能会继续遇到这样的障碍。 谷歌搜索会出现一些其他免费的 python 教程,这些教程更新得更及时,也更容易理解。

此页面有一些针对初学者的链接:初学者指南

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

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

我刚从同一本书开始,Python Programming Third Ed。 迈克尔道森,遇到了同样的问题。 自从这本书写完之后,情况发生了变化。

如果您仍想创建 window,这是我使用的代码,它可以工作:

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)

屏幕现在被视为要实例化的 object。 in its constructor, now pass that into the method. Screen class 在其构造函数中不再接受 ,现在将该传递给方法。 into method, it will default to 50.如果你不将传递给方法,它将默认为 50。

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

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM