クラス定義
クラスは、変数とそれを操作する関数をまとめて名前(クラス名)を付けたもの。
操作する関数群をメソッドと呼ぶ
▼書式
class クラス名(継承するクラス名): メンバー変数の定義 def __init__(引数): 文1 def メソッド名1(引数): 文2 def メソッド名2(引数): 文3
特殊メソッド(__init__)は、コンストラクタ。
インスタンス作成時に文1が実行される。
クラス名.メソッド名1、で文2が実行される。
クラス名.メソッド名2、で文3が実行される。
実際に使うときには、クラスのインスタンス(実体)を作成する。
インスタンスを作る際にコンストラクタが実行される(初期化)
>>>変数 = クラス名() #インスタンスを作成し変数に代入する。 文1が実行される >>>変数.メソッド名1(引数) 文2が実行される
▼使い方
四則演算を行うArithmeticという名前のクラスを定義してみる。
>>> ========================= RESTART ========================= >>> class Arithmetic: def __init__(self): #コンストラクタ print "コンストラクタ実行" def Addition(self, a, b): #足し算メソッド print "足し算メソッド実行" return a + b def Subtraction(self, a, b): #引き算メソッド print "引き算メソッド実行" return a - b def Multiplication(self, a, b): #掛け算メソッド print "掛け算メソッド実行" return a * b def Dividing(self, a, b): #割り算メソッド print "割り算メソッド実行" return a / b>>> instance = Arithmetic() #Arithmeticクラスのインスタンスを変数instanceに代入 コンストラクタ実行 >>> instance.Addition(10, 2) #実際の操作にはインスタンスを使う 足し算メソッド実行 12 >>> instance.Subtraction(10, 2) 引き算メソッド実行 8 >>> instance.Multiplication(10, 2) 掛け算メソッド実行 20 >>> instance.Dividing(10, 2) 割り算メソッド実行 5 >>>クラスの中で関数(メソッド)を定義するときは第1引数に変数"self"を指定するのがお約束 変数selfの中にはクラス自身のインスタンスが入る>>> ========================= RESTART ========================= >>> class test: def __init__(self): print self >>> a = test() <__main__.test instance at 0x00ACDD28> >>> type(a)意味がわからなければ、「とりあえずそうするもの」と覚えておけばOK 参考:9. クラス http://www.python.jp/doc/release/tut/node11.html