Python | クラスの使い方
公開日:2021/5/31
更新日:2021/6/2
Pythonでは,クラスを用いるとデータと機能を合わせて出力することができる.以下に,コンストラクタ,インスタンスメソッド,インスタンスを用いて,クラスの説明をする.また,コンストラクタに関係するデストラクタにについても説明をする.
◆実施環境
Python 3.8.8
■コンストラクタを用いたクラスの使い方
コンストラクタを用いる際,"__init__"を利用する.コンストラクタの第1引数には"self"を書き,第2引数から好きな引数を記述できる.引数の初期値も記述可能である.コンストラクタの後に,インスタンスメソッドを設定する.その後,"変数名 = クラス名(引数)"によってインスタンスを生成することができる.
# 1の処理
class Chocolate:
def __init__(self,maker,brand,year): # コンストラクタ
self.maker = maker
self.brand = brand
self.year = year
def introduction(self): # インスタンスメソッド
print(f'{self.maker}は{self.year}年に{self.brand}を発売した')
myChoco1 = Chocolate('Meiji','Fran',1999) # インスタンス生成
myChoco2 = Chocolate('Glico','Gaba',2005)
myChoco1.introduction()
myChoco2.introduction()
■実行結果
# 1の結果
Meijiは1999年にFranを発売した
Glicoは2005年にGabaを発売した
■コンストラクタを用いないクラスの使い方
# 1の処理
class Human:
"""人間クラス"""
country = 'Japan'
year = 2000
name = 'Taro'
def introduction(self): # インスタンスメソッド
print(f'{self.name}は{self.year}年に{self.country}で生まれた')
def print_country(self):
print(self.country)
def print_year(self):
print(self.year)
def print_name(self):
print(self.name)
myhuman = Human() # # インスタンス生成
myhuman.introduction()
myhuman.print_name()
print(myhuman.country)
■実行結果
# 1の結果
Taroは2000年にJapanで生まれた
Taro
Japan
■デストラクタの使い方
デストラクタを用いる際,"__del__"を利用する.デストラクタはインスタンスを削除することができる.
# 1の結果
class Chocolate:
def __init__(self,maker,brand,year): # コンストラクタ
self.maker = maker
self.brand = brand
self.year = year
def __del__(self):
print('デストラクタ実行')
def introduction(self): # インスタンスメソッド
print(f'{self.maker}は{self.year}年に{self.brand}を発売した')
myChoco1 = Chocolate('Meiji','Fran',1999) # インスタンス化
myChoco1.introduction() # 13行目が出力
del myChoco1 # デストラクタ実行により,インスタンス削除
myChoco1.introduction() # 16行目と同じ処理だが,インスタンスが生成されていないので,エラーになる
■実行結果
# 1の結果
Meijiは1999年にFranを発売した
デストラクタ実行
NameError: name 'myChoco1' is not defined
以上