星號變數的特殊用法

發表於2016-10-13

引言

在Python中,星號除了用於乘法數值運算和冪運算外,還有一種特殊的用法”在變數前新增單個星號或兩個星號”,實現多引數的傳入或變數的拆解,本文將詳細介紹”星號引數”的用法。

文章目錄

  • 0×1.什麼是星號變數
  • 0×2.單星號變數例項
  • 0×3.雙星號變數例項

0×1.什麼是星號變數

最初,星號變數是用在函式的引數傳遞上的,在下面的例項中,單個星號代表這個位置接收任意多個非關鍵字引數,在函式的*b位置上將其轉化成元組,而雙星號代表這個位置接收任意多個關鍵字引數,在**b位置上將其轉化成字典:

在瞭解了單星號和雙星號的基本使用方法後,下面來看看他們的擴充套件用法。

0×2.單星號變數例項

單星號變數不僅僅能夠用在函式的引數傳遞中,實際上對一個普通變數使用單星號字首,能夠將這個變數拆分成單個元素,請看下面的例項:

1

為了驗證這一點,我們修改一下one()函式,如下:

再來看幾個例項:2

0×3.雙星號變數例項

在第2小節的最後,我們使用單星號拆分了一個字典傳遞給函式,卻只能得到字典的鍵,下面演示如何使用雙星號來獲得字典的值:39

Ps:注意,使用這種方法將字典傳入函式的時候,字典的鍵的命名要符合python變數的命名規則,通過上面的分析也不難看出,雙星號會將字典首先轉換成關鍵字引數的形式,就相當於使用字典中的鍵作為變數名,如果鍵不符合變數命名規則,則會丟擲一個”TypeError”異常,大家可以嘗試著顛倒一下上面字典中的鍵和值,使用數字作為鍵,看看會出現什麼問題。

在一個函式的接收引數中,同時出現”非關鍵字引數(位置引數)”和”關鍵字引數”時,可以使用一個單星號來分隔這兩種引數,例如:4

如果我們要在一個函式中包含多種引數的組合,必須遵守這樣的順序:位置引數(必選引數),預設引數,單星號引數或星號分隔符,關鍵字引數,雙星號引數;請看下面的例項:

相關文章