AttributeError:' int'对象没有属性&fd'

时间:2016-03-20 22:47:45

标签: python-3.x turtle-graphics attributeerror

我正在阅读Python教程,其中一个练习让我陷入困境。练习的描述是:"阅读以下功能,看看你是否可以弄清楚它的作用。然后运行它。"所以我不能告诉你它做了什么,我还在努力。

我自己只写了两行,它是来自所说教程的复制粘贴。这是代码:

import turtle

t = turtle.Turtle()
turtle.mainloop()

def draw(t, length, n):
    if n == 0:
        return
    angle = 50
    t.fd(length*n)
    t.lt(angle)
    draw(t, length, n-1)
    t.rt(2*angle)
    draw(t, length, n-1)
    t.lt(angle)
    t.bk(length*n)

draw(5, 10, 15)

提供追溯:

> Traceback (most recent call last):   File
> "D:\Directory\Python\Projects\Learning python\Exercises\Exercise
> 5.14.5.py", line 18, in <module>
>     draw(5, 10, 15)   File "D:\Directory\Python\Projects\Learning python\Exercises\Exercise 5.14.5.py", line 10, in draw
>     t.fd(length*n) AttributeError: 'int' object has no attribute 'fd'

1 个答案:

答案 0 :(得分:1)

您收到此错误的原因是因为第一个参数是5,因此变量t在函数中的值为5。然后代码会尝试调用5.fd(length*n)。调用t时,将第一个参数切换为draw

draw(t, 10, 15)