繁体   English   中英

如何确定要在python中定义的函数使用哪个变量

[英]How can I determine which variable to use for a defined function in 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。 变量奇数,最小,最大可以代替xdot吗? 我怎样才能做到这一点?

您可以使用部分应用程序执行此操作。 这将创建一个函数p_xintegral ,该函数将使用单个参数。 该单个参数将在xintegral分配给xdot ,并且xyz在执行部分应用程序时确定:

from functools import partial

p_xintegral = partial(xintegral, x, y, z)

因此,您应该能够调用simpson(p_xintegral, mini, maxi, N)

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

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM