python单例

单例模式

把类进行实例化,生成对象的过程

对象 = 类()
  1. 类名(),首先需要获取一个内存地址,目标
  2. 谁来执行这个目标,完成这个任务? 答: 由object类中的__new__方法完成的
  3. __new__方法它的结果。 是成功获取了的内存地址的引用
  4. 对象的内存地址获取成功后,如果有__init__方法,那么会就自动触发

单例模式的核心工作

就是让类在实例化成成对象的时候

只返回一个内存地址

  1. 如果这个类已经实例化生成了一次内存地址,就不要再让父类去获取地址了
  2. 如果这个类没有生成过内存地址,就让父类去弄一个

方法伪装属性

装饰器property

class Cat:
    name = "猫的类"
    @property
    def print_name(self):
        return self.name

    @print_name.setter
    def print_name(self, newname):
        self.name = newname

t = Cat()
ret = t.print_name
print(ret)

# 对象的属性可以修改值,如何修改?
t.print_name = "狗的类"
ret = t.print_name
print(ret)

  • 传送数据

    队列对象.put(数据)
    

    阻塞的情况:当队列已经被塞满数据时,就会阻塞。无法put放入数据。当队列中有空位置时,就会解阻塞。

  • 接收数据

    数据 = 队列对象.get()
    

    阻塞的情况:当队列空了,出不了数据了,就会阻塞。直到队列中有新数据时,会解阻塞。

  • 接收数据,且不等待

    数据 = 队列对象.get_nowait()
    

    如果队列中有数据,可以获得,如果队列中无数据,那就报错。

生产者消费者模型

做包子 20 10

包子,比做数据

吃包子 3 5

事件

  • 创建事件对象

    事件对象 = multiprocessing.Event()
    

    理解为,制定了一个行动计划

  • 等待行动指令

    事件对象.wait()
    
  • 开始行动

    事件对象.set()
    
  • 取消行动,继续回归到等待状态(潜伏状态)

    事件对象.clear()
    
  • 判断当前的事件状态

    事件对象.is_set()
    
  • 2
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值