Python学習日記:8回目の要約
はじめに
久々に投稿します。学習自体は進んでいるのですが、投稿がたまっている状態です。また準備できましたら、学習記録あげていきます。
Python学習の8回目では、プログラミングの基礎であるクラスとオブジェクトについて深く掘り下げました。この回では特に、車をモデル化するクラスの作成に焦点を当てました。
学習内容と課題
問題1:クラスの定義
↓ChatGPTからの問題
1.`Car` という名前のクラスを定義してください。このクラスには、`__init__` メソッドを使用して、`make`(メーカー)、`model`(モデル)、`year`(年式)の3つの属性を持たせてください。
2.`describe_car` というメソッドをクラスに追加し、車のメーカー、モデル、年式を一つの文字列として返すようにしてください(例: "2019 Tesla Model S")。
私の解答
※あまりクルマのことわからないので、車種とか年代は気にしないでください。。
class Car:
def __init__(self,make,model,year):
self.make = make
self.model = model
self.year = year
def describe_car(self):
print(self.make,self.model,self.year)
test = Car("トヨタ","86","1997")
test.describe_car()
問題2:オブジェクトの作成とメソッドの呼び出し
↓ChatGPTからの問題2問目
`Car` クラスを使用して、いくつかの車のオブジェクトを作成してください。作成した各車オブジェクトに対して、`describe_car` メソッドを呼び出し、その返り値をコンソールに出力してください。
私の解答
test.describe_car("ダイハツ","タント","2010")
ChatGPTからの指摘
`Car`クラスから複数のオブジェクトをインスタンス化し、それぞれに`describe_car`メソッドを適用しました。
1問目はOKでしたが、2問目を指摘されました。
同じクラスのインスタンスを使用してメソッドを呼び出しましたが、
別でインスタンス化してから呼び出すようにすることが、ルールに基づいたコードの書き方という指摘でした。
異なるインスタンスに対して正しくメソッドを呼び出す方法に誤解がありましたが、修正することで正しい実装ができるようになりました。
学びのポイント
クラスとインスタンス変数:クラスの定義とインスタンス変数の正しい扱い方を理解することが、オブジェクト指向プログラミングの基礎となります。
オブジェクトのインスタンス化:異なるインスタンスを作成し、それぞれに個別の属性値を持たせる方法を学びました。
メソッドの実装と呼び出し:クラス内にメソッドを定義し、オブジェクトからそのメソッドを呼び出す実践を通じて、クラスの機能をより深く理解しました。
まとめ
この回の学習で、クラスとオブジェクトの基本的な概念についての理解を深めることができました。特に、クラスの定義方法、インスタンス変数の正しい使い方、そしてオブジェクトメソッドの呼び出し方についての知識は、今後のプログラミングにおいて非常に重要なので、もう一度復習します。今回の学びを基に、さらにオブジェクト指向プログラミングの理解を深めていくことが大切と感じましたた。