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)を実行しているということ。
つまり、クラスのインスタンスと関数を一つの変数として扱える。
だから、コールバック関数の登録が簡単にできたのだ。