Python怎麼傳遞不定引數

suliver發表於2021-09-11

Python怎麼傳遞不定引數

不定長位置引數

使用*arg_name定義的位置引數,表示任意多個位置引數;Python標準庫中習慣使用*args來命名不定長位置引數,當然我們可以自定義

這個名稱;不定長位置引數的型別為元組;

Python 允許在形參前面新增一個星號(*),這樣就意味著該引數可接收多個引數值,多個引數值被當成元組傳入。

下面程式定義了一個形參個數可變的函式:

# 定義了支援引數收集的函式
def test(a, *books) :
    print(books)
    # books被當成元組處理
    for b in books :
        print(b)
    # 輸出整數變數a的值
    print(a)
# 呼叫test()函式
test(5 , "php中文網" , "Python教程")

執行上面程式,將看到如下執行結果:

('php中文網', 'Python教程')
php中文網
Python教程
5

從上面的執行結果可以看出,當呼叫 test() 函式時,books 引數可以傳入多個字串作為引數值。從 test() 的函式體程式碼來看,引數收集的本質就是一個元組: Python 會將傳給 books 引數的多個值收整合一個元組。

Python 允許個數可變的形參可以處於形參列表的任意位置(不要求是形參列表的最後一個引數),但 Python 要求一個函式最多隻能帶一個支援“普通”引數收集的形參。例如如下程式:

# 定義了支援引數收集的函式
def test(*books ,num) :
    print(books)
    # books被當成元組處理
    for b in books :
        print(b)
    print(num)
# 呼叫test()函式
test("php中文網", "Python教程", num = 20

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/2370/viewspace-2835546/,如需轉載,請註明出處,否則將追究法律責任。

相關文章