先自定义两个模块,然后,我们调用模块时,用打补丁方式,改写mod_1.py模块。为mod_2.py内容;其实这就相当于,在不改动mod_1.py模块的前提下,打上补丁。
写这个主要是gevent协程的时候,用到的monkey.patch_all()补丁,其实原理就是这样。
mod_1.py
mod_2.py
调用时实现补丁。
结果输出: mod2_function
从结果可以看出,我们已经把mod_1.py模块,以补丁的形势,替换到了mod_1.py中。
其实严格的说,不能算是打补丁,因为这里完全的把mod_1.py模块的内容替换成了mod_2.py。
这也是在不改变系统原来的代码或内置函数的情况下,来替成我们的代码。注意,这是替换运行时的模块内容。
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。