python不定長引數如何呼叫函式?
我們講了這麼多的引數,多多少少都會有一些限制的地方。小編在學習的時候,發現了一個新的引數很有意思,在長度、型別上沒有進行固定,跟它的名字非常相符,那就是不定長引數。那麼這類引數在呼叫函式上會有什麼不同嗎?帶著這個問題,我們一起來學習在python中使用不定長引數呼叫函式。
函式的不定長引數包含*args和**kwargs,完整例項如下:
def function_print(*args,**kwargs): # 傳遞不定長引數,即引數個數不固定 print(args) print(kwargs) function_print()
輸出結果:
() {}
程式碼分析:由輸出結果可以看出來,第一個形參*args 是元組tuple型別,第二個形參**kwargs是字典dict型別。
對於任意函式,都可以透過func_name(*args, **kw)的形式來進行呼叫,其中 args 是一個已經獲得的列表或者元組,而 kw 是一個已經獲得的字典。列表傳入會按順序對必輸引數賦值,多餘的引數會當成可變引數傳入,而字典傳入會根據 key 來匹配所有引數。如:
def test1(a, b, c=0, *args, **kwargs): print('a =', a, 'b =', b, 'c =', c, 'args =', args, 'kw =', kwargs) def test2(a, b, c=0, *args, d, **kwargs): print('a =', a, 'b =', b, 'c =', c, 'd =', d, 'args=', args, 'kw =', kwargs) # 定義一個元組和字典用作引數傳入 args = (1, 2, 3, 4) kw = {'d': 99, 'x': '#'} test1(*args, **kw) # a = 1 b = 2 c = 3 args = (4,) kw = {'d': 99, 'x': '#'} test2(*args, **kw) a = 1 b = 2 c = 3 d = 99 args= (4,) kw = {'x': '#'}
注意函式傳參的三種形式:
1.普通傳參
2.預設引數,如果外部沒有為預設引數傳遞實參,形參等於預設值
3.注意不定長引數的拆包,普通實參打包為元組tuple型別,關鍵字引數打包為字典dict型別
以上就是不定長引數呼叫函式的方法了,相信小夥伴們都對這種長度、型別不限定的引數非常感興趣,學會的一起執行程式碼,看看是否跟小編的結果一致呢~
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/2894/viewspace-2831809/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 學習javaScript必知必會(1)~js介紹、函式、匿名函式、自呼叫函式、不定長引數JavaScriptJS函式
- python函式變長引數Python函式
- Java不定長引數Java
- python不定長函式:*args 和 **args的使用Python函式
- 函式的呼叫方式和引數函式
- python---函式引數、變數Python函式變數
- Python中將函式作為另一個函式的引數傳入並呼叫Python函式
- [思] 當需要傳遞多個不定引數時,該如何設計 JavaScript 函式?JavaScript函式
- Python函式引數總結Python函式
- Python怎麼傳遞不定引數Python
- 函式呼叫引數變數傳值的問題函式變數
- python中getattr如何帶引數呼叫?Python
- Python函式/動態引數/關鍵字引數Python函式
- python sorted()函式的引數用法Python函式
- 【C語言】函式的概念和函式的呼叫(引數傳遞)C語言函式
- 如何使用python super函式呼叫父類?Python函式
- 函式引數 引數定義函式型別函式型別
- Swift 呼叫 Objective-C 的可變引數函式SwiftObject函式
- python基礎之 函式的引數Python函式
- python中函式的引數傳遞Python函式
- 1分鐘掌握 Python 函式引數Python函式
- Lua中呼叫ref和out修飾引數的函式/過載函式函式
- Python函式的位置引數、關鍵字引數精講Python函式
- php函式之如何用預設引數和可變長度引數方式傳遞?PHP函式
- gdb 如何呼叫函式?函式
- Python語法—函式及引數傳遞Python函式
- Python 中__init__函式以及引數selfPython函式
- Ruby方法傳不定引數
- 『無為則無心』Python函式 — 26、Python函式引數的傳遞方式Python函式
- 函式基礎和函式引數函式
- Javascript函式引數求值——Thunk函式JavaScript函式
- python介面自動化(三十四)-封裝與呼叫--函式和引數化(詳解)Python封裝函式
- PHP 都有,Go 憑什麼不支援命名引數呼叫函式?PHPGo函式
- Day10 函式基礎+函式三種定義形式 + 函式的返回值、物件和引數 + 可變長引數函式物件
- Python3之函式的引數傳遞與引數定義Python函式
- 一文看懂 Python 中的函式引數Python函式
- Python技法2:函式引數的進階用法Python函式
- Python 序列型別以及函式引數型別Python型別函式