nprogram’s blog

気ままに、プログラミングのトピックについて書いていきます

Python基礎学習 (クラスについて)

クラスについて

Pythonでもクラスはあります。
クラスをインスタンス化して、オブジェクトを生成します。
クラスを生成したときに呼び出されるクラスのコンストラクタ処理(初期化処理)は、'''def init(self):'''の形式で呼び出されます。
__init__()にかかわらず、すべてのメソッドの決まりとして、第一パラメータは、selfと記述します。
これは、メソッド呼び出し時に、呼び出し元のオブジェクトが渡されるというPythonのしきたりによるものです。

また、Pythonでは、C++でいうオーバーロードの仕組みがないため、デフォルト引数を使用してオーバーロードを実現します。

class Car:

    def __init__(self, speed=0, time_span=0, distance=0):
        self.speed = speed
        self.time_span = time_span
        self.distance = distance

    def run(self, speed, time_span):
        self.speed = speed
        self.time_span = time_span
        self.distance = speed * time_span

    def show_speed(self):
        print('Speed : ' + str(self.speed))

    def show_time_span(self):
        print('Speed : ' + str(self.time_span))

    def show_distance(self):
        print('Distance : ' + str(self.distance))


car1 = Car()
car1.run(10, 5)
car1.show_speed()
car1.show_time_span()
car1.show_distance()

car2 = Car()
car2.run(10, 10)
car2.show_speed()
car2.show_time_span()
car2.show_distance()

# 実行結果
# Speed : 10
# Speed : 5
# Distance : 50
# Speed : 10
# Speed : 10
# Distance : 100