首頁 >電腦教學 >電腦知識 >如何查看Python函數的參數訊息

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

王林
王林轉載
2024-01-15 14:45:121576瀏覽

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

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

1. F(arg1,arg2,…)

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

程式碼如下:

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

呼叫函數,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()為例:

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

#函數參數包含:必選參數、預設參數、可選參數、關鍵字參數。

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

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

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

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

#預設參數最大好處就是降低呼叫函數的難度。

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

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

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

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

#

我要查看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函數的參數訊息的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文轉載於:docexcel.net。如有侵權,請聯絡admin@php.cn刪除