16日目 - オブジェクト指向プログラミング
前回は組み込み機械のプログラミングに活かせるコードを学びました。
今回は、Pythonを学習するうえで重要になる「オブジェクト指向プログラミング」を学んでいきたいと思います。
オブジェクト指向プログラミングとは、文字通り「オブジェクト」という概念に基づいたプログラミング手法の一つです。 オブジェクトは、任意個数のフィールド (属性、プロパティまたは変数)で構成されるデータと、任意個数の(メソッドまたは関数)で構成されるコードのひとまとまりで構成されます。例えば、レストランのウェイターはこのような変数と関数をもつ1塊のオブジェクトとして表されます。
オブジェクト指向プログラミングの特徴は、1つのクラスから複数のオブジェクトをインスタンシエート(初期化)できることです。今回はTurtleというPythonライブラリーを使ってオブジェクト指向プログラミングの基礎を学んでいきます。
Tableのオブジェクトをインスタンシエートしてメソッドを呼び出す
from prettytable import PrettyTable
table = PrettyTable()
print(table)
table.add_column("Pokemon name", ["Pikachu", "Squirtle", "Charmander"])
table.add_column("Type", ["Electric", "Water", "Fire"])
Print(table)
Turtleのオブジェクト
from turtle import Turtle, Screen
#turtleクラスをインスタンシエートしてTimmyという名前にする
Timmy = Turtle()
Timmy.shape("turtle")
Timmy.color("coral")
Timmy.forward(100)
#turtleを画面上に描写するためのmy_screenクラスをインスタンシエート
my_screen = Screen()
my_screen.canvheight
#クリックと同時にプログラムを終了
my_screen.exitonclick()
コーヒーマシーンのオブジェクト指向化
from menu import Menu
from coffee_maker import CoffeeMaker
from money_machine import MoneyMachine
money_machine = MoneyMachine()
coffee_maker = CoffeeMaker()
menu = Menu()
is_on = True
while is_on:
options = menu.get_items()
choice = input(f"What would you like? ({options}): ")
if choice == "off":
is_on = False
elif choice == "report":
coffee_maker.report()
money_machine.report()
else:
drink = menu.find_drink(choice)
if coffee_maker.is_resource_sufficient(drink) and money_machine.make_payment(drink.cost):
coffee_maker.make_coffee(drink)