元类基础
class SingletonMeta(type): _instances = {} def __call__(cls, *args, **kwargs): if cls not in cls._instances: cls._instances[cls] = super().__call__(*args, **kwargs) return cls._instances[cls] class Singleton(metaclass=SingletonMeta): pass
类装饰器
def add_method(cls): def new_method(self): return "新方法" cls.new_method = new_method return cls @add_method class MyClass: pass
转载请注明:周志洋的博客 » Python进阶-元类编程