python属性的默认值

python类的构造函数中属性可以设置默认值,实例化出来的对象如果属性使用默认值,默认值的地址是相同的。

class A:
    def __init__(self, name = []):
        self.__name = name
    
    @property
    def name(self):
        return self.__name

a = A()
b = A()
c = A([])
d = A([])

print hex(id(a.name))
print hex(id(b.name))
print hex(id(c.name))
print hex(id(e.name))

打印结果,前两个地址是相同的,后两个地址互不相同且和前两个也不同