跳至內容

如何查看Python函數的參數信息

更新時間
快连VPN:速度和安全性最佳的VPN服务
快连VPN:速度和安全性最佳的VPN服务

python怎麼查看函數有什麼參數

python中查看函數參數有四種方式:

1. F(arg1,arg2,…)

這是函數的常見定義方式,可以定義任意數量的參數。參數之間使用逗號分隔。調用這種類型的函數時,必須在函數名後的括號中提供相同數量的值(實際參數),且順序必須相同。換句話說,在這種調用方式中,形參和實參的數量必須一致,並且必須一一對應,即第一個形參對應第一個實參。例如:

代碼如下:

def a(x,y):print x,y

立即學習“Python免費學習筆記(深入)”;

調用該函數,a(1,2)則x取1,y取2,形參與實參相對應,如果a(1)或者a(1,2,3)則會報錯。

2. F(arg1,arg2=value2,…)

這種方式就是第一種的改進版,提供了默認值,例如:

代碼如下:

def a(x,y=3):print x,y

調用該函數,a(1,2)同樣還是x取1,y取2,但是如果a(1),則不會報錯了,這個時候x還是1,y則爲默認的3。上面這倆種方式,還可以更換參數位置,比如a(y=4,x=3)用這種形式也是可以的。

3. F(*arg1)

上面兩種方式是有多少個形參,就傳進去多少個實參,但有時候會不確定有多少個參數,則此時第三種方式就比較有用,它以一個*加上形參名的方式來表示這個函數的實參個數不定,可能爲0個也可能爲n個。注意一點是,不管有多少個,在函數內部都被存放在以形參名爲標識符的元組中。

代碼如下:

def a(*x):print x

>>> a(1,2,3)

(1, 2, 3)

>>> a(x=1,y=2,z=3)

Traceback (most recent call last):

File "", line 1, in TypeError: a() got an unexpected keyword argument 'x' 4. F(**arg1) 形參名前加兩個*表示,參數在函數內部將被存放在以形式名爲標識符的dictionary中,這時調用函數的方法則需要採用arg1=value1,arg2=value2這樣的形式。 代碼如下: def a(**x):print x >>> a(x=1,y=2,z=3) {'y': 2, 'x': 1, 'z': 3} #存放在字典中 >>> a(1,2,3) #這種調用則報錯 Traceback (most recent call last): File "", line 1, in TypeError: a() takes exactly 0 arguments (3 given)

python怎麼查看函數參數

在開發中我們可以藉助於相關插件或使用Python內置函數"help()”來查看某個函數的參數說明,以查看內置函數sorted()爲例:

函數參數包括:必選參數、默認參數、可選參數、關鍵字參數。

1、默認參數:放在必選參數之後,計算x平方的函數:

這樣的話每次計算不同冪函數都要重寫函數,非常麻煩,可使用以下代碼計算:

默認參數最大好處就是降低調用函數的難度。

2、可變參數:就是傳入的參數個數是可變的,可以是1個、2個到任意個,還可以是0個,在參數前面加上*就是可變參數。在函數內部,參數numbers接收得到的是一個tuple,調用該函數時,可以傳入任意個參數,包括0個參數:

也可以類似可變參數,先組裝一個dict,然後,把該dict轉換爲關鍵字參數傳進去:

我要查看DLL的外部函數及其參數該怎麼做

就是,建議轉貼

好吧, 我去別的地方看看

但是分。。。。

VC自帶的Depends~

提個看參數個數的方法吧,不過無法判斷類型,除非你仔細跟蹤每一句指令

PROC lpFunction = GetProcAddress(hModule,"fucntion name");_asm{jmp lpFunction ;從這裏跟蹤進函數進去}

函數應該爲(如果是C寫的stdcall)

(別執行,可能會出錯的,往下慢慢看得了)push ebpmov ebp,esp

sub esp,XXX (4的倍數)

add esp,XXX

mov esp,ebppop ebpret XXXX (也是四的倍數)

參數個數 = XXXX/4

以上就是如何查看Python函數的參數信息的詳細內容,更多請關注本站其它相關文章!

更新時間

發表留言

請注意,留言須先通過審核才能發佈。