パッケージでは、クラス内で完全に機能する一連の関数/変数を分離しました。これらの関数は特定のコンテキストを必要としないため、クラス メソッドになりました。それらはいくつかの外部関数を使用する場合があり、ここでは関数で表されていsave_c
ます。しかし、次のコードを機能させることができません。
def save_c(v):
print("c :" + v)
class Writer(object):
@classmethod
def save(cls, t, v):
cls.writers[t](v)
@classmethod
def save_a(cls, v):
print("a :" + v)
@classmethod
def save_b(cls, v):
print("b :" + v)
writers = [save_a, save_b, save_c]
if __name__ == "__main__":
Writer.save(1, [1, 2, 3])
前のコードでは、次のエラーが発生します。
TypeError: 'classmethod' object is not callable
私がやろうとしていることが到達可能かどうか誰かが知っていますか? それとも、通常のメソッドを使用して、必要に応じて Writer をインスタンス化する必要がありますか?