导入函数更改其隐式变量

import function changing its implicit variable

如何调用导入函数的对象,更改函数内部的全局变量?

示例:

于 func.py

a = 2
def f(x):
    f = a*x**2
    return f

在 deriv.py

def df(f, x, h):
    return (f(x + h) - f(x-h)) / (2*h)

在 main.py

from deriv import df
from func import f

res = df( f, 2 , 0.0001  )

print(res)

这适用于 a=2。有没有办法改变 main.py 上 a 的值?所以我可以用任意 a 值计算函数 f = a*x**2 的导数。

可以在函数中设置a的默认值作为参数。

def f(x,a=2):
    f = a*x**2
    return f

你也可以这样做(虽然可能不是一个好的风格)。

from deriv import df
from func import f
import func
func.a = 0

res = df( f, 2 , 0.0001  )

print(res)