我应该制作一个对象,但是当我试图控制我的对象时它缺少属性?沼泽地

I should've made an object, but when i try to control my object it lacks Attributes? Swampy

我一直在按照我的 "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% 关注了这本书。

顺便说一句,书上是这样说的:

"第一行是我们之前看到的导入语句的变体;它没有创建模块对象,而是直接从模块导入函数,因此您无需使用点符号即可访问它们。

接下来的几行创建了一个分配给 world 的 TurtleWorld 和一个分配给 bob 的 Turtle。打印 bob 会产生如下结果:

<TurtleWorld.Turtle object at 0x00FD1CD0>W

但是当我使用 "print (bob)" 我明白了吗?

<class 'TurtleWorld.Turtle'>

我很乐意提供您需要的任何信息来帮助我:)

Link到本书的网络版:http://faculty.stedwards.edu/mikek/python/thinkpython.pdf

第 47-48 页解释了这些内容

这是 Swampy 下载的 link: http://www.greenteapress.com/thinkpython/swampy/

我通过将 "swampy" 文件夹解压缩到文件夹 "libs" 来安装 swampy,所以模块的目录现在如下所示:

D:\Python34\Lib\swampy-2.1.5

Turtle 是一个 class,其中新的 Turtle 对象是由。

你需要的就是这样一个新对象。您必须 "call" class 才能创建新对象:

bob   = Turtle()

bob 应该被实例化为 Turtle class 的对象,而不是将 Turtle class 分配给它。

示例 -

bob   = Turtle()

或者

bob   = Turtle(world)