单例模式,随机选择

单例模式:
某一个类,只有一个实例,自动实例化向整个系统提供这个实例
单例类写法:

class A(object):
    __instance=None
    def __new__(cls, *args, **kwargs):
        if not cls.__instance:
            cls.__instance=super(A, cls).__new__(cls,*args,**kwargs)
        return  cls.__instance

if __name__ == '__main__':
    a=A()
    print(id(a))

    a1=A()
    print(id(a1))

    a2 = A()
    print(id(a2))

id()指向对象的内存地址

单例模式的优缺点:
优点:
1、在单例模式中,活动的单例只有一个实例,对单例类的所有实例化得到的都是同样的一个实例,确保所有的对象访问的一个实例
2、提供了对唯一实例的受控访问
主要的一点:3、内存中只有一个对象,节约系统资源
4、可以实现可变数目的实例
5、避免对资源的多重占用
缺点:
1、不适用变化的对象,单例会引起数据错误
2、扩展有困难
3、开销问题

单例模式应用的场景:
资源管理类一般设计成单例模式
需要频繁实例化然后销毁的对象
创建对象耗时或者活飞资源过多但又经常用到的对象
有状态的工具类对象
频繁访问数据库或者文件的对象

随机选择:

import random
from random import choice
list_new=[1,2,3,4,'asd']
ret=random.choice(list_new)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值