ChatGPTにクラスの継承について訊いてみた

Google先生はもはや老害だと言う噂。若手のGPT先生に入門しました。

Q 親クラスをCarManufacturerとし、それを継承したCarModelクラスを作るには?

GPT Answer

親クラスをCarManufacturerとし、それを継承したCarModelクラスを作るには、以下のように書きます。

class CarManufacturer:
    def __init__(self, manufacturer, headquarters):
        self.manufacturer = manufacturer
        self.headquarters = headquarters

class CarModel(CarManufacturer):
    def __init__(self, manufacturer, headquarters, model, year):
        super().__init__(manufacturer, headquarters)
        self.model = model
        self.year = year

car = CarModel("Toyota", "Japan", "Camry", 2020)
print(car.manufacturer) # Output: Toyota
print(car.headquarters) # Output: Japan
print(car.model) # Output: Camry
print(car.year) # Output: 2020

このように、CarModelクラスはCarManufacturerクラスを継承し、親クラスの__init__メソッドを呼び出すことで、製造者と本社の設定を継承することができます。

Q 変数名を日本語に直してください

GPT Answer

親クラスを自動車メーカーとし、それを継承した自動車モデルクラスを作るには、以下のように書きます。

class 自動車メーカー:
    def __init__(self, 製造者, 本社所在地):
        self.製造者 = 製造者
        self.本社所在地 = 本社所在地

class 自動車モデル(自動車メーカー):
    def __init__(self, 製造者, 本社所在地, モデル, 年式):
        super().__init__(製造者, 本社所在地)
        self.モデル = モデル
        self.年式 = 年式

自動車 = 自動車モデル("トヨタ", "日本", "カムリ", 2020)
print(自動車.製造者) # 出力: トヨタ
print(自動車.本社所在地) # 出力: 日本
print(自動車.モデル) # 出力: カムリ
print(自動車.年式) # 出力: 2020

このように、自動車モデルクラスは自動車メーカークラスを継承し、親クラスの__init__メソッドを呼び出すことで、製造者と本社所在地の設定を継承することができます。

Q これに自動車メーカーのカウンターを設置するには?

GPT Answer

自動車メーカークラスにカウンターを設置するには、以下のように書きます。

class 自動車メーカー:
    製造数 = 0

    def __init__(self, 製造者, 本社所在地):
        自動車メーカー.製造数 += 1
        self.製造者 = 製造者
        self.本社所在地 = 本社所在地

class 自動車モデル(自動車メーカー):
    def __init__(self, 製造者, 本社所在地, モデル, 年式):
        super().__init__(製造者, 本社所在地)
        self.モデル = モデル
        self.年式 = 年式

自動車1 = 自動車モデル("トヨタ", "日本", "カムリ", 2020)
自動車2 = 自動車モデル("ホンダ", "日本", "フィット", 2021)
print(自動車メーカー.製造数) # 出力: 2

このように、自動車メーカークラスに製造数というクラス変数を定義し、__init__メソッド内で製造数をインクリメントすることで、各インスタンス生成時にカウンターを増やすことができます。


‘製造数’ではなくて、’メーカー数’だったら分かりやすさ的に完璧だった。

コメント

タイトルとURLをコピーしました