タートルグラフィックスで自作したクラスの動作確認を行えるようにしよう


タートルグラフィックスで自作クラスを別ファイルに切り分けようでコードをmain.pyとdrawer.pyに切り分けました。

切り分ける事で、両方のファイルのコード数が減り読みやすくなりましたが、drawer.pyの方で書かれたコードの動作確認が難しくなりました。


動作確認できるようにDrawerクラスの下にコードを追加します。

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()


if __name__ == "__main__":
␣␣␣␣d = Drawer()
␣␣␣␣turtle.shape("turtle")

␣␣␣␣d.draw_square()
␣␣␣␣turtle.done()

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


if __name__ == "__main__":

の if 文は(今回であれば)drawer.pyが単体で実行された時に真(True)になり、if 文の下のブロックが実行されます。


クラス内に新規でメソッドを追加した場合に他のファイルから呼び出される前に、動作確認用のコードを書いて正しく動作するかを確認することができるようになります。

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