簡體   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