# **************************************************************************
# Python学习
# **************************************************************************
# ** 所属主题: 模块
# ** 所属分层: 46 猴子补丁
# ** 功能描述: 46 猴子补丁
# ** 创 建 者: 陈红伟
# ** 创建日期: 2021/4/21 11:23 下午
# **************************************************************************
# ** 修改日期 修改人 修改内容
# ** 2021/4/21 陈红伟 新增学习内容代码
# **************************************************************************
"""
补丁: 在软件的迭代过程中,比如某一个函数会逐渐需要优化,但是因为该函数在很多地方用到,
所以不能修改原函数了,只能用一个新的函数赋值原函数名称,而且只能在第一个执行文件中操作。
"""
# 案例:猴子补丁
# 需求背景:
# 已知ujson模块的dumps()和loads()比json的dumps()和loads()效率高,需要替换掉原来的json模块中的dumps()和loads()
# 分析:
# 1、需要进行模块的导入,因为考虑到导入时做的3件事情(前面已经讲过,这里不再赘述),所以需要在在开始执行的文件中导入,后面要用到的时候,会直接引用,不会在新建名称空间
import json
import ujson
def monkey_patch_json():
json.__name__ = 'ujson'
json.dumps = ujson.dumps
json.loads = ujson.loads
monkey_patch_json() # 在程序入口执行
# 后续代码中应用,还是不用变的,这就是补丁的作用
# json.dumps()
# json.loads()
Python基础46:补丁(猴子补丁)的介绍
最新推荐文章于 2024-04-08 19:37:18 发布