タートルグラフィックスで自作クラスを別ファイルに切り分けよう


タートルグラフィックスを介してクラスに触れてみようで作成しましたDrawerクラスを別のファイルに切り分けてみます。


コードを書いているファイル(例として/home/pi/main.pyとします)と同じ階層にdrawer.pyというファイルを作成します。

※今回の例であれば新規作成するファイルのパスは/home/pi/drawer.pyになります。


main.pyのDrawerクラスに関するコードを切り取り、drawer.pyに書きようなコードを作成します。

import turtle


# 絵を描くためのメソッドをまとめたクラス
class Drawer:

␣␣␣␣# 移動した先で四角を描く
␣␣␣␣def draw_square(self):
␣␣␣␣␣␣␣␣for i in range(4):
␣␣␣␣␣␣␣␣␣␣␣␣turtle.forward(50)
␣␣␣␣␣␣␣␣␣␣␣␣turtle.left(90)

␣␣␣␣# 移動した先で丸を描く
␣␣␣␣def draw_circle(self):
␣␣␣␣␣␣␣␣turtle.circle(30)

␣␣␣␣# 移動した先で三角を描く
␣␣␣␣def draw_triangle(self):
␣␣␣␣␣␣␣␣for i in range(3):
␣␣␣␣␣␣␣␣␣␣␣␣turtle.forward(50)
␣␣␣␣␣␣␣␣␣␣␣␣turtle.left(120)

␣␣␣␣# 移動した先で星を描く
␣␣␣␣def draw_star(self):
␣␣␣␣␣␣␣␣for i in range(5):
␣␣␣␣␣␣␣␣␣␣␣␣turtle.forward(50)
␣␣␣␣␣␣␣␣␣␣␣␣turtle.left(144)

␣␣␣␣# クリックした箇所にカメが移動する
␣␣␣␣def move_turtle(self, x, y):
␣␣␣␣␣␣␣␣turtle.penup()
␣␣␣␣␣␣␣␣turtle.goto(x, y)
␣␣␣␣␣␣␣␣turtle.pendown()
␣␣␣␣␣␣␣␣if x < 0 and y > 0:
␣␣␣␣␣␣␣␣␣␣␣␣self.draw_circle()
␣␣␣␣␣␣␣␣elif x > 0 and y > 0:
␣␣␣␣␣␣␣␣␣␣␣␣self.draw_square()
␣␣␣␣␣␣␣␣elif x < 0 and y < 0:
␣␣␣␣␣␣␣␣␣␣␣␣self.draw_triangle()
␣␣␣␣␣␣␣␣else:
␣␣␣␣␣␣␣␣␣␣␣␣self.draw_star()

※␣は半角スペース1個分


Drawerクラス内でturtleのメソッドを使う為、1行目の

import turtle

は重要になります。




main.pyの方でdrawer.pyのコードを使えるように書き換えます。

import turtle
from drawer import *

d = Drawer()
turtle.shape("turtle")

screen = turtle.Screen()
screen.onclick(d.move_turtle)
screen.listen()
turtle.done()
from ファイル名 import *

でdrawer.pyを読み込み、Drawerクラスを呼び出せるようにします。


main.pyとdrawer.pyに切り分けた事で、両方のファイルのコードが読みやすくなりました。

マインクラフト用ビジュアルエディタを開発しています。
詳しくはinunosinsi/mcws_blockly - githubをご覧ください。