1 Star 0 Fork 0

北京大学-夏敏/小白学派森2.0

加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
克隆/下载
New方法.py 1.27 KB
一键复制 编辑 原始数据 按行查看 历史
陈俊宇 提交于 2020-11-10 17:49 . 面向对象学习
# class Animal:
# def __init__(self):
# self.color='红色'
# pass
# #如果在python当中 如果不重写new方法 默认结构如下
# def __new__(cls, *args, **kwargs):
# return super().__new__(cls,*args,**kwargs) #super()等于object
# pass
#
# tigger=Animal() #实例化的过程会自动调用__new__ 去创建实例
# 在新式类中 new才是真正的实例化方法 为类提供外壳制造出实力框架,然后调用该框架内的构造方法init进行丰满操作
# 比喻建房子 new负责开发地皮 打地基 并将原料存放在工地 而init负责从工地取材料 建造出地皮开发图纸规定的大楼 细节
# print(tigger.color)
# 单例模式 常用的软件设计模式
# 单例模式 确保一个类里只有一个实例存在 希望在整个系统中某个类只能出现一个实例 那么这个单利对象就能满足要求
# 创建一个单例对象 基于__new__实现
class DataBaseClass(object):
def __new__(cls, *args, **kwargs):
if not hasattr(cls,'_instance'):
cls._instance=super().__new__(cls, *args, **kwargs)
return cls._instance
db1=DataBaseClass()
print(id(db1))
db2=DataBaseClass()
print(id(db2))
db3=DataBaseClass()
print(id(db3))
马建仓 AI 助手
尝试更多
代码解读
代码找茬
代码优化
Python
1
https://gitee.com/pkuecho/xiaobai-xuepaisen-20.git
git@gitee.com:pkuecho/xiaobai-xuepaisen-20.git
pkuecho
xiaobai-xuepaisen-20
小白学派森2.0
master

搜索帮助

D67c1975 1850385 1daf7b77 1850385