Python设计模式(三)【共享模式】

又来干货,继续努力,少年!

# 共享模式
class Borg:
    """共享状态"""
    __shared_state = {}

    def __init__(self):
        self.__dict__ = self.__shared_state
        self.state = '初始化'

    """当你打印一个类的时候,那么print首先调用的就是类里面的定义的__str__"""
    """当打印Borg的一个实例的时候,__str__函数被调用到"""
    def __str__(self):
        return self.state

class YourBorg(Borg):
    """Python pass是空语句,是为了保持程序结构的完整性。
       pass 不做任何事情,一般用做占位语句。"""
    pass

if __name__ == '__main__':
    rm1 = Borg()
    rm2 = Borg()

    rm1.state = '空闲的'
    rm2.state = '运行中的'

    print('rm1: {0}'.format(rm1))
    print('rm2: {0}'.format(rm2))

    """改变(共享的)状态"""
    rm2.state = '僵尸'

    print('rm1: {0}'.format(rm1))
    print('rm2: {0}'.format(rm2))

    print('rm1 id: {0}'.format(id(rm1)))
    print('rm2 id: {0}'.format(id(rm2)))

    """初始化(共享的)状态"""
    rm3 = YourBorg()

    print('rm1: {0}'.format(rm1))
    print('rm2: {0}'.format(rm2))
    print('rm3: {0}'.format(rm3))

结果如图:

这里写图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值