python学習記録4 クラス
今日は昨日の続きでクラスについて学習しました
オライリーの『初めてのPython』のクラスのところを読みましたが、
オブジェクト指向について少し分かってきました。
クラスとインスタンスというものがあり、
クラスはインスタンスのひな形で、関数などの共通部分を定義するもので、
インスタンスはクラスを元に生成し、それぞれのインスタンスに固有のデータを持つものだということがわかりました。
下記のプログラムを作成し、実際に動かしてみました
#!/usr/bin/env python # クラスC1を定義 class C1: # クラスのメソッド(関数)を定義 # selfにはインスタンスが入る def setname(self, who): self.name = who # インスタンスI1,I2を生成 I1 = C1() I2 = C1() # インスタンスのメソッドを呼び出す # aaa, bbbはwhoに代入される I1.setname('aaa') I2.setname('bbb') # インスタンスの変数を表示 print I1.name
$ python test1.py
aaaと表示される
#!/usr/bin/env python # クラスC1を定義 class C1: def __init__(self, who): self.name = who # インスタンスI1,I2を生成し、コンストラクタ__init__を実行 I1 = C1('aaa') I2 = C1('bbb') # インスタンスの変数を表示 print I1.name
__init__はコンストラクタというものでインスタンスを定義すると同時に実行される関数
$ python test2.py
aaaと表示される
ただ、実際の業務ではインフラのスクリプトでクラスを使用しているものをあまり見たことが無いです
どういうときに使うと良いかというのがまだわかっていません。
引き続き学習したいと思います。