在一个包中,我隔离了一组在一个类中完全起作用的函数/变量。由于这些函数不需要特定的上下文,因此它们成为类方法。他们可能会使用一些外部函数,这里用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?