python custom metaclass call method relation with classes
我试图理解Python元类和类之间的关系。我试图创建singleton类并找到此代码
1 2 3 4 5 6 7 8 9 10 11 12 | class SingleTon(type): def __call__(self, *args, **kwargs): if self._instances is None: self._instances = super(SingleTon, self).__call__(*args, **kwargs) return self._instances class Counter: __metaclass__ = SingleTon _instances = None def __init__(self): self.count = 1 c = Counter() |
这里我的问题是如何使用元类创建计数器类对象。我知道每当我们创建一个对象时都会调用元类调用方法,但这里的混乱是这个代码super(singleton,self)在这里所做的。请解释一下。这将是非常可观的。
这就像在一个"普通"的类层次结构中调用