我一直在遵循我的#34; think python" book(3.x的版本),我已经完成了本书告诉我的所有内容,但我仍然在其中一个练习中遇到了一个奇怪的错误?
问题在于: 我应该玩#34; TurtleWorld"来自模块" swampy",以及我所得到的(这正是书中所写的内容)
from TurtleWorld import *
world = TurtleWorld()
bob = Turtle
print (bob)
fd(bob, 100)
lt(bob)
fd(bob, 100)
wait_for_user()
当我尝试运行此代码时,它应该启动一个名为TurtleWorld的新程序,在那里你应该看到一只乌龟向东移动然后向北移动,留下两个线段,但是当我尝试运行该程序时,我得到了这个错误:
Traceback (most recent call last):
File "D:\Python34\Lib\swampy-2.1.5\Polygon.py", line 8, in <module>
fd(bob, 100)
File "D:\Python34\Lib\swampy-2.1.5\TurtleWorld.py", line 179, in fd
x, y = self.x, self.y
AttributeError: type object 'Turtle' has no attribute 'x'
这真的让我觉得奇怪吗?就像我说的那样,我有100%跟随这本书。
顺便说一下这本书:
&#34;第一行是我们之前看到的import语句的变体;它不是创建模块对象,而是直接从模块导入函数,因此您可以在不使用点表示法的情况下访问它们。
接下来的行创建一个分配给world的TurtleWorld和一个分配给bob的Turtle。打印bob产生类似的东西:
<TurtleWorld.Turtle object at 0x00FD1CD0>W
但是当我使用&#34; print(bob)&#34;我知道了吗?
<class 'TurtleWorld.Turtle'>
我很乐意提供您需要的任何信息来帮助我:)
链接到该书的在线版本:http://faculty.stedwards.edu/mikek/python/thinkpython.pdf
第47-48页是解释这些内容的地方
这是Swampy下载的链接: http://www.greenteapress.com/thinkpython/swampy/
我通过解压缩&#34;沼泽&#34;来安装沼泽地。将文件夹放入文件夹&#34; libs&#34;,所以模块的目录现在看起来像这样:
D:\ Python34 \ Lib \ swampy-2.1.5
答案 0 :(得分:1)
Turtle
是一个新的Turtle
对象来自的类。
您需要的是这样一个新对象。你必须打电话给#34;创建新对象的类:
bob = Turtle()
答案 1 :(得分:1)
bob应该被实例化为Turtle
类的对象,而不是将Turtle
类分配给它。
示例 -
bob = Turtle()
或者
bob = Turtle(world)