如何确定在python中用于定义函数的变量

时间:2018-01-23 23:15:17

标签: python

我已定义此功能:

def xintegral(x,k,z,xdot):
     f=np.exp((x-xdot)**2*k/(2*z)*1j)
     return f

我想在这个过程的func位置插入这个函数:

def simpson(func,mini,maxi,N): 
     sum=0   
     h=(maxi-mini)/N 
     even=mini+2*h
     odd=mini+h 

     for i in range(N//2-1):  
          sum+=func(even)*2
          even+=2*h
     for i in range(N//2): 
          sum+=func(odd)*4
          odd+=2*h
     sum=(sum+(func(mini)+func(maxi)))*h/3 
     return sum

我想将xdot变量用作函数xintegral。所以我试着这样写:simpson(xintegral(x,k,z,xdot),mini,maxi,N) 但我希望变量是xdot。变量odd,mini,maxi可以代替xdot吗?我怎么能这样做?

2 个答案:

答案 0 :(得分:2)

您可以使用部分应用程序执行此操作。这将创建一个函数p_xintegral,它将采用一个参数。该单个参数将分配给xdot xintegral xyzfrom functools import partial p_xintegral = partial(xintegral, x, y, z) 在您执行部分申请时确定:< / p>

simpson(p_xintegral, mini, maxi, N)

因此,您应该可以致电package.json

答案 1 :(得分:0)

我认为这就是你想要的。否则你的f不是函数

def xintegral(x,k,z,xdot):
     f=lambda j:np.exp((x-xdot)**2*k/(2*z)*1j)
     return f