クラスの文法
クラスは以下のように定義、使用する。基本はPythonベース。以下の特徴がある。
- インスタンスメソッドの第一引数にselfは不要
- 関数とメソッドの区別はしない。関数定義時にselfキーワードを使用できるが、メソッドでなく関数として呼び出した場合は、selfはNoneになる
- 継承機能は存在しない。mixinで代用
- クラスメソッドとインスタンスメソッドの区別なし
class Foo: def __init__(): # コンストラクタ self.a = 1 # インスタンス変数にアクセス def foo(): # 第一引数にself不要 print(self.a) class Bar: mixin(Foo.__attrs__) # 単純に属性(変数と関数)がコピーされる。 def __init__(): Foo.__init__() # (1)superクラスのコンストラクタ呼び出しは、このようにする self.b = 2 def bar(): print self.foo() # メソッド(関数)という属性にアクセス b = Bar() b.bar() # 1を表示 def baz(): print(99, self.b) b.baz = baz # bazはbの特異メソッド b.baz() # 99, 2を表示