by shigemk2

当面は技術的なことしか書かない

classmethod

Python のクラスメソッド – デコレータ @classmethod, @staticmethod を使って | すぐに忘れる脳みそのためのメモ

function のクラスメソッドを返します。
クラスメソッドは、インスタンスメソッドが暗黙の第一引数としてインスタンスをとるように、第一引数としてクラスをとります。

class Hoge1:
    @classmethod
    def sayHoge(cls, x):
        print x + " hoge"

Hoge1.sayHoge("ABC")
Hoge1().sayHoge("abc")

class Hoge:
    def sayHoge(self, x):
        print x + " hoge"

Hoge = Hoge()
Hoge.sayHoge("ABC")
Hoge().sayHoge("abc")

ABC hoge
abc hoge
ABC hoge
AttributeError: Hoge instance has no __call__ method