2016-03-20 18 views
0

私はPythonチュートリアルを読んでいます。練習問題の説明は次のとおりです。「次の関数を読み、それが何であるか把握できるかどうかを確認してから実行してください。だから私は本当にそれが何をしているかを伝えることはできません、私はまだそれに取り組んでいます。AttributeError: 'int'オブジェクトに属性 'fd'がありません

私は自分自身で2つの最初の行を書きましたが、それは上記チュートリアルのコピー貼りです。ここでは、コードは次のとおりです。

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

最初の引数は整数です。この引数はあなたのグローバル変数 't = turtle.Turtle()'を覆い隠します。 –

+0

@Rogalski私は答えとして投稿するべきだと思います – syntonym

答えて

1

最初のパラメータは5ので、変数tは、関数の値5を持っているので、このエラーが発生した理由があります。その後、コードは5.fd(length*n)を呼び出します。 drawを呼び出すときtに最初のパラメータを切り替えます - 'T' draw`コール `に渡さ

draw(t, 10, 15) 
関連する問題