Pythonクラスのスタティック関数
class AAA: def mes(self, a): print a
このように定義した場合,mes()を以下のように呼び出した。
1)AAA.mes(None, 123)
2)AAA.mes(AAA(), 123)
3)AAA().mes(123)
1)だけダメだった。
クラス関数を呼ぶのに、クラスのインスタンスは必ず必要なのか?
- 関数のポインタ
こういうこともできる
a = AAA() afunc = a.mes afunc(234)
afunc(234)はa.mes(234)を実行しているということ。
つまり、クラスのインスタンスと関数を一つの変数として扱える。
だから、コールバック関数の登録が簡単にできたのだ。