编程语言
首页 > 编程语言> > python-使类方法成为默认方法的元类?

python-使类方法成为默认方法的元类?

作者:互联网

有没有一种方法可以编写一个元类,以使默认情况下基于该元类的类中定义的所有方法都是类方法(即不需要@classmethod装饰等)?

谢谢!

编辑:我对Python 2.7.3感兴趣.请原谅.

解决方法:

像这样(2.7)

def m(name, bases, dct):
    for k, v in dct.items():
        if type(v) is type(m):
            dct[k] = classmethod(v)
    return type(name, bases, dct)

class A:
    __metaclass__ = m

    def foo(self):
        print self


A.foo() # <class '__main__.A'>

标签:metaclass,class-method,python
来源: https://codeday.me/bug/20191201/2080196.html