库函数方法重写和调用(不影响正常库函数安装加载和调用)

之前遇到一个比较有意思的问题,python的某一个库函数里边有一个逻辑错了,但是我又改不了。不知道怎么办呢。后来有大佬跟我说,可以新定义一个方法,实现你要做的事情,但是又依赖import的库函数,可以将库函数的这一个具体小方法指定到你刚刚实现的那个方法即可,其他库函数里边的任何方法和逻辑都不用变。


实现:比如你有一个python库叫a库,a的库里边有个功能脚本aa.py:

def add(a, b):
    return a+b

(1)你有一个业务脚本加载了a库aa.py中的 add方法:

from a import aa
a, b = 3, 4
print('求和:', aa.add(3,4))

显然,结果是7.

(2)假如有一次你要改动这个a库里边aa脚本里边的add, 但是你其他代码还必须import a.aa

又不能改动库函数可以新定义一个小功能 add2,将a.aa.add指向add2即可。

from a import aa
a, b = 3, 4

def add2(a, b):  # 自定义的接口功能
    return a + b + 100

aa.add=add2  # aa库的这个接口指向新功能接口运行,其他不变(import方式和使用都不变)

print('求和:', aa.add(3,4))

此时这个结果应该是 107.

你可能感兴趣的:(python,python,开发语言)