「这是我参与11月更文挑战的第20天,活动详情查看:2021最后一次更文挑战」
new方法会开辟空间
每次实例化,这个new方法都会开辟一个新的空间
可不可以让这new方法只开辟一个空间:::单例模式
单例模式:
提前引入一些小知识点:::
第一个:
hasattr() #has attribute
hasattr() 函数用于判断对象是否包含对应的属性\
hasattr(object(对象),name(“字符串,属性名”))
返回True(有的时候) False(没有的时候)
1 | python复制代码class Person: |
会发现两次的id都一样了,即两次指向同一片内存空间,相当于a被b覆盖了。
意味着这两个其实引用的是同一个实例,是一个实例的不同名字
描述符
描述符协议:python描述符是一个“绑定行为”的对象属性,在描述符协议中,
它可以通过方法重写属性的访问。这些方法有__get__(), set(), 和__delete__()。
如果这些方法中的任何一个被定义在一个对象中,这个对象就是一个描述符
举例说明:
描述符:描述符就是类里面的属性base
控制实例对象a访问 这个属性 (base) 可以做一些额外的操作
描述符 定义了__get__ set delete 当中的一种
1 | python复制代码class Base: |
本文转载自: 掘金