class SingleWidget(type):
def __call__(cls, *args, **kwargs):
if hasattr(cls, '_instance'):
return getattr(cls, '_instance')

obj = super().__call__(*args, **kwargs)
setattr(cls, '_instance', obj)

return obj

1)def __call__(cls, *args, **kwargs):__call__ 方法在类被实例化时调用,即当你使用 UniqueText() 创建对象时,实际上是调用了 SingleWidget 元类的 __call__ 方法。
2)if hasattr(cls, '_instance'):检查类 cls 是否已经有一个名为 _instance 的属性。如果有,说明该类已经被实例化过了。
3)return getattr(cls, '_instance'):如果类已经有实例,直接返回该实例。
4)obj = super().__call__(*args, **kwargs):如果类还没有实例,调用父类(即 type 类)的 __call__ 方法来创建一个新的实例。
5)setattr(cls, '_instance', obj):将新创建的实例存储在类的 _instance 属性中。
6)return obj:返回新创建的实例。