python 的类中有两种变量:类变量,实例变量。
类变量是指所有类的实例化对象都会共享的变量(可以通过类名调用,也可以通过实例对象名调用), 实例变量指只作用于调用实例的变量(只能通过实例对象名调用)。比如下面的例子,age是类对象,所有的A类实例都共享这个age,name则是每个实例各自独有的。
class A:
age = 0
def __init__(self, n):
self.name = g
python中单例实现的思路可以是:不仅仅有一个对象,但是每个对象共享同样的状态。
class A:
_shared_dict = {}
def __init__():
self.__dict__ = self._shared_dict
self.__dict__是一个字典,记录了这个类实例所有的变量:变量值,现在它被设置成共享的类变量,那么所有的A实例里,变量名,变量值,都一样,等价于只有一个实例。