Pythonの関数の変数は関数内部のものだけを使用しましょう。
Pythonの関数でやってはならない事は
関数外部変数を関数内部で使うことです。
一体何故でしょうか?
亀が円を描くコードです。
import turtle
kame = turtle.Turtle()
kame .shape('turtle')
kame.shapesize(2,2,3)
def center_circle():
kame.penup()
kame.forward(200)
kame.left(90)
kame.pendown()
kame.circle(200)
kame.penup()
kame.home()
kame.pendown()
center_circle()
こうやって円を描きます。
ただこれは間違いです。
kame = turtle.Turtle()の関数外部のkameって変数を
def center_circle():の関数内部で使うのはやってはいけないのです。
何故ならkameの変数がkame2になったら関数内部のkame.penup()はエラーになってしまいます。
では、正しく書いてみましょう。
import turtle
kame = turtle.Turtle()
kame .shape('turtle')
kame.shapesize(2,2,3)
def center_circle(target):
target.penup()
target.forward(200)
target.left(90)
target.pendown()
target.circle(200)
target.penup()
kame.home()
kame.pendown()
center_circle(kame)
def center_circle(target):にtargetって変数を新たに作ります。
実際に動くのはkameなので
center_circle(kame)はkameって引数にします。
これで亀が円を描きます。
つまり、関数の内部で使える変数は関数内部で決めたのか、引数で引き受けたものだけなんです。