Python元类:动态创建类的黑魔法

元类允许我们在类创建过程中动态修改类的行为。它被称为"类的类"。

python
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 Database(metaclass=SingletonMeta):
def __init__(self):
self.connection = "Connected"

# 无论创建多少次,都是同一个实例
db1 = Database()
db2 = Database()
print(db1 is db2) # True

元类提供了一种强大的方式来拦截类的创建过程,实现如单例模式等高级设计模式。

声明:本站所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。