classmethod()
メソッドをクラスメソッドへ変換します。
クラスメソッドは、(C.f() のように) クラスから呼び出すことや、(C().f() のように) インスタンスから呼び出すことも可能です。
ただし、クラスメソッドは、C++や、Javaの静的メソッドとは異なります。
使用例
class C:
@classmethod
def f(cls, arg1, arg2): ...
class C:
def __init__(self, arg=0):
self.arg = arg
@classmethod
def f(cls):
return cls(9)
t = C.f()
print(t.arg)
# 実行結果 9
print(type(t))
# 実行結果 <class '__main__.C'>