【问题标题】:Python: Calling functions inside functions.Python:在函数内部调用函数。
【发布时间】:2017-12-06 13:42:18
【问题描述】:

Regula 是一个在设定的区间内求最小值的函数(求函数的根)。

def Regula(f,Tol,Nmax,a,b):
    N = 1
    while N < Nmax:
        c = (b*f(a)-a*f(b)) / (f(a)-f(b))
        if f(c) == 0 or abs(a-b) < Tol:
            break
        if (np.sign(f(c)) == np.sign(f(a))):
            a = c
        else:
            b =c 
        N += 1 
    return c

这是我正在使用的两个函数。 M2 调用 G2。

def G2(T):
    return (48*np.pi**2)/(11*N*(np.log(lam*T+Ts))**2)

def M2(T,func):
    return ((N/6)*(func(T))*(T**2))**0.5

M2 有效。我保证。

我的问题是我不知道如何泛化 Regula 来调用 M2,它调用 G2。

请帮忙!

Min_Mass = Regula (M2(T,G2), Tol, 50, a, b)

a = 1
b = 4
T = np.linspace(a,b,100)
Tol=1e-13

【问题讨论】:

    标签: python function stack calling-convention self-reference


    【解决方案1】:

    你为什么不简单地使用:

    ...
    
    def M2(T,value):
        return ((N/6)*( value )*(T**2))**0.5
    
    Min_Mass = Regula (M2(T,G2(T)), Tol, 50, a, b)
    
    ...
    

    【讨论】:

    • 那应该是匿名函数,不是函数值,Min_Mass = Regula (lambda T :M2(T,G2(T)), Tol, 50, a, b)
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2017-05-08
    • 2021-06-25
    • 2012-01-12
    • 1970-01-01
    • 1970-01-01
    • 2020-06-16
    • 2017-03-05
    相关资源
    最近更新 更多