猴子补丁思想

1. 什么是猴子补丁?

  • 只是一个概念,不属于任何包和模块
  • 这里利用了python一切皆对象的理念,在程序运行过程中,动态修改方法
# 什么是猴子补丁?
# 只是一个概念,不属于任何包和模块
# 利用了python一切皆对象的理念,在程序运行过程中,动态修改方法
# 概念
# class Monkey():
#     def play(self):
#         print('猴子在玩')
#
#
# class Dog():
#     def play(self):
#         print('狗子在玩')
#
# m=Monkey()
# # m.play()
# m.play=Dog().play
#
# m.play()

2. 有什么用?

  • 这里有一个比较实用的例子,
  • 很多用到import json,后来发现ujson性能更高。
  • 如果觉得把每个文件的import json改成import ujson as json成本较高,
  • 或者说想测试一下ujson替换是否符合预期, 只需要在入口加上:

2.1 模块的替换

# 只需要在程序入口

# import json
# import ujson
#
# def monkey_patch_json():
#     json.__name__ = 'ujson'
#     json.dumps = ujson.dumps
#     json.loads = ujson.loads
# monkey_patch_json()
#
# aa=json.dumps({'name':'lqz','age':19})
# print(aa)

2.2 基于协程

#协程:单线程下实现并发
# from gevent import monkey;monkey.patch_all()
# import gevent
# import time
# def eat():
#     print('eat food 1')
#     time.sleep(2)
#     print('eat food 2')
# 
# def play():
#     print('play 1')
#     time.sleep(1)
#     print('play 2')
# 
# g1=gevent.spawn(eat)
# g2=gevent.spawn(play)
# gevent.joinall([g1,g2])
# print('主')

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

骑猪去兜风z1

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值