Pythonの基礎知識④です。
引き続き自分の勉強メモです。
過度な期待はしないでください。
過去投稿記事
Python基礎
Python基礎②
Python基礎③
Python基礎⑤
クラスの定義
-「もの」を生成する仕組み
その「もの」を生成するには、まずその「設計図」を用意する必要がある。
その設計図のことをクラス
、
「もの」のことをインスタンス
と呼ぶ。
インスタンスを生成する
1、「クラスを用意する」
- クラスは「class クラス名:」
で定義
class Vehicletype: # 行末にコロンは必須
pass # 何も処理がない事を表す
# インデントを揃える(半角スペース4つ分)
2、「クラスからインスタンスを生成」
-「クラス名()」
とそのクラスを呼び出すこと
で、
クラスを用いて新しくインスタンスを生成することが出来る。
そして、「変数名 = クラス名()」
とすることで、生成したインスタンスを変数に代入することが出来る。
class Vehicletype: # 行末にコロンは必須
pass # 何も処理がない事を表す
# インデントを揃える(半角スペース4つ分)
vehicle_type1 = Vehicletype()
# Vehicletypeクラスからインスタンスを生成
3、インスタンスに情報を追加
-「vehicle_type1.name = 'トラック'」とすることで、menu_item1に
「name」が「トラック」であるという情報を追加することが出来る。
この時、「name」のことを「インスタンス変数」
と呼ぶ。
class Vehicletype: # 行末にコロンは必須
pass # 何も処理がない事を表す
# インデントを揃える(半角スペース4つ分)
vehicle_type1 = Vehicletype()
# Vehicletypeクラスからインスタンスを生成
vehicle_type1.name = 'トラック'
print(vehicle_type1.name)
# 出力結果 → トラック
vehicle_type2 = Vehicletype()
# Vehicletypeクラスからインスタンスを生成
vehicle_type2.name = 'バス'
print(vehicle_type2.name)
# 出力結果 → バス
クラスの中に処理を追加
-クラスの中では関数を定義することが出来る。
クラスの中で定義した関数のことをメソッド
と呼ぶ。
-メソッドの定義の方法
第1引数にselfを追加する
必要がある
class Vehicletype:
def hello(self): # 第1引数にselfを追加
# インデントを揃える(半角スペース4つ分)
print('こんにちは')
-クラスの中で定義したメソッドを呼び出す `「インスタンス.メソッド名()」`とすることで、そのメソッドを呼び出すことが出来る
class Vehicletype:
def hello(self): # 第1引数にselfを追加
# インデントを揃える(半角スペース4つ分)
print('こんにちは')
# インデントを揃える(半角スペース4つ分)
vehicle_type1 = Vehicletype()
# Vehicletypeクラスからインスタンスを生成
vehicle_type1.hello()
# 出力結果 → こんにちは
インスタンスメソッド
-インスタンスメソッドの第1引数に指定した「self」には、そのメソッドを呼び出したインスタンス自身が代入されている。
そのため、「self.name」とすることで、そのメソッドを呼び出している「vehicle_type1」の「name」の値を取得することが出来る。
class Vehicletype:
def info(self): # selfにvehicle_type1が代入されている
print(self.name)
vehicle_type1 = Vehicletype()
vehicle_type1.name = 'トラック'
vehicle_type1.info
# 出力結果 → トラック
-「return」を使って戻り値として返すことが出来る
class Vehicletype:
def info(self): # selfにvehicle_type1が代入されている
return self.name
vehicle_type1 = Vehicletype()
vehicle_type1.name = 'トラック'
print(vehicle_type1.info )
# 出力結果 → トラック
-インスタンスメソッド(引数)
class Vehicletype:
def info(self, count): # countに「4」が代入される、「self」の分だけ引数の順番がずれる
vehicle_type1 = Vehicletype()
vehicle_type1.name = 'トラック'
vehicle_type1.info(4)
-__init__メソッド
__init__メソッド
は、「クラス名()」でインスタンスを生成した直後に自動で呼び出されるメソッド。
class Vehicletype:
def __init__(self):
print('車種をお選びください')
vehicle_type1 = Vehicletype()
# インスタンスが生成されたので__init__メソッドが自動で呼び出される
# 出力結果 → 車種をお選びください
-`__init__メソッド`(値を代入) インスタンスを生成すると同時にインスタンス変数に値を代入することが出来る。
class Vehicletype:
def __init__(self):
self.name = 'トラック'
vehicle_type1 = Vehicletype()
# インスタンスが生成されたので__init__メソッドが自動で呼び出される
print(vehicle_type1.name)
# 出力結果 → トラック
-__init__メソッド
(引数)
インスタンスメソッドと同じように、引数を受け取ることも出来る。
class Vehicletype:
def __init__(self, name):
self.name = name
vehicle_type1 = Vehicletype('トラック')
# インスタンスが生成されたので__init__メソッドが自動で呼び出される
print(vehicle_type1.name)
# 出力結果 → トラック