我一直按照我的“think python”书(3.x 版本)中的说明进行操作,并且我已经完成了书中告诉我的所有事情,但是在其中一个练习中我仍然遇到了一个奇怪的错误?
这就是问题所在:我应该玩模块“swampy”中的“TurtleWorld”,这就是我所拥有的(这正是书中所写的)
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% 地遵循了这本书。
顺便说一下,这本书是这样说的:
“第一行是我们之前看到的 import 语句的变体;它不是创建模块对象,而是直接从模块中导入函数,因此您可以在不使用点符号的情况下访问它们。
接下来的几行创建了一个分配给世界的 TurtleWorld 和一个分配给 bob 的 Turtle。打印 bob 会产生类似的结果:
<TurtleWorld.Turtle object at 0x00FD1CD0>W
但是当我使用“打印(鲍勃)”时,我明白了吗?
<class 'TurtleWorld.Turtle'>
我很乐意提供您需要的任何信息来帮助我:)
本书在线版链接:http ://faculty.stedwards.edu/mikek/python/thinkpython.pdf
第 47-48 页是解释这些东西的地方
这是 Swampy 下载的链接:http: //www.greenteapress.com/thinkpython/swampy/
我通过将“swampy”文件夹解压缩到“libs”文件夹中来安装 swampy,因此模块的目录现在如下所示:
D:\Python34\Lib\swampy-2.1.5