Python クラスメソッドを判別する
class Foo: @classmethod def clsMethod(self): pass def insMethod(self): pass
というコード。Foo.clsMethod がクラスメソッドになる。
- type で判別
>>> type(Foo.clsMethod) <type 'instancemethod'> >>> type(Foo.insMethod) <type 'instancemethod'>
無理。
- isinstance, types で判別
>>> import types >>> types.MethodType <type 'instancemethod'>
無理。
- 結論
無理。
命名規則を決めるかクラス定義時にデコレータなどで登録するのが正しいのかも。