Python3__new__方法用法之创建单例对象

本文详细介绍了Python中如何使用__new__方法实现单例模式,通过一个Dog类的例子,展示了无论创建多少次对象,都只会生成一个实例的过程及其实现原理。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Python3__new__方法创建单例对象
1) 单例对象:即一个类,无论创建多少次对象,都只有一个对象,是同一个对象的引用。
2) 代码示例:

class Dog(object):
    __instance = None     #定义一个参数用来判断是否为第一次创建对象

    def __new__(cls):
        if cls.__instance == None:            #判断是否为第一次创建对象
            cls.__instance = object.__new__(cls)    #使用参数保存新创建对象的引用
            return cls.__instance    #返回对象的引用
        else:
            #如果不是第一次创建对象,则return 上一次创建的对象的引用
            return cls.__instance
a = Dog()
print(id(a))
b = Dog()
print(id(b))

运行结果:

140257904889752
140257904889752

两次创建的对象地址相同,即只是将第一次创建对象的引用传递给b,并没有创建新的对象。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值