Pythonのクラス
クラスの基本構文
オブジェクト指向のプログラミングでこのクラスを使用する。プログラムを実際の現実の役割に例えて記述していくのがオブジェクト指向プログラミング。これを活用することでプログラムを書きやすくなる。
class クラス名(Object)でクラスを宣言します。クラスは現実の世界でいう一つの物。その中にdefで関数を記述していく。関数はその物の役割として働く。
def __init__とあるのはコンストラクタといわれオブジェクトの生成時に実行される。下の例でいうとdogというオブジェクトの生成と同時にnameを設定している。
self.変数名 の形で変数を宣言することでクラス内のどこからでもその変数を参照することが出来る。関数でself変数を使用するときは引数にselfをいれる。
class Dog(object): #class Dog(): #class Dog: #コンストラクタ def __init__(self,name): self.name = name def introduction(self): print('My name is {}'.format(self.name)) def barks(self): print('wanwan') #オブジェクトを生成する dog = Dog('pochi') print(dog,type(dog)) #<__main__.Dog object at 0x000002282E452FD0> <class '__main__.Dog'> dog.introduction() #My name is pochi dog.barks() #wanwan
クラスの継承
クラスを宣言する際に引数にクラス名を入れることでそのクラスを継承することが出来る。継承したクラスでは元のクラスで宣言していたクラス変数や関数を使用することが出来る。
継承したクラスで継承元のクラスと同じ名称の関数を宣言した場合継承した関数で上書きされる。
また、継承したクラスでは新規の関数を宣言することもできる。
#引数にクラスを入れることで継承できる class Border(Dog): #継承もとにも同じクラスがある場合は上書きされる def barks(self): print('Can Can') #新規で関数を宣言することもできる def walk(self): print('tokotoko') dog = Dog('pochi') print(dog,type(dog)) #<__main__.Dog object at 0x000002282E452FD0> <class '__main__.Dog'> dog.introduction() #My name is pochi dog.barks() #wanwan border = Border('Wendy') #継承もとのクラスの関数も呼び出すことができる border.introduction() #My name is Wendy border.barks() #Can Can border.walk() #tokotoko