首頁>技術>

這次我們將通過幾個例項,瞭解一下關鍵字引數的使用。在Python中,可以使用"kwarg=value"的形式來使用關鍵字引數。下面我們先看一個例項。

在這個例項中,我們假定是在操作Excel檔案,其中函式get_cell_value是透過指定工作表(sheet),以及對應的行和列,獲取指定單元格的值。

第一種呼叫方法get_cell_value("sheet1", 4, 7)是基於位置判斷的,我們按順序呼叫sheet_name,row,col就可以正確呼叫函式。

第二種方法,get_cell_value("sheet1", col=7, row=4)中,sheet1是一個位置引數,col=7和row4是兩個關鍵字引數。對於關鍵字引數,只要符合"kwarg=value"形式即可,不必保證位置順序和函式宣告時一致,因此,我們看到col=7在前,row=4在後,也可以正確的呼叫函式。

第三種方法,get_cell_value(col=7, row=4, sheet_name="sheet1")中,我們使用了3個關鍵字引數,而沒有使用位置引數。

上面的例子,是一個基礎的關鍵字引數例項。現在我們再增加一些內容,看一下帶預設值的關鍵字引數的使用。

這個例項與之前的例項不同的地方在於,row和col是兩個預設引數。我們看一下程式的執行效果。

透過執行結果可以看出,當我們只使用1個引數呼叫函式時,函式的row和col預設使用了1。在Python中位置引數一定要在關鍵字引數之前,所以第2次函式呼叫時,是先傳入sheet1引數,再傳入col=7。

下面我們再加大一些難度,來看一個更復雜的例項。我們假定在操作Excel的過程中,我們要定義一個函式來專門向指定的工作表(sheet)中填充不確定數量的資料,在填充資料的過程中,為了美觀,我們還可以同時設定單元格的一些樣式屬性,比如字型,大小等等。

*values是一個tuple(元組),它代表包含了形參列表之外的所有位置引數。在這個例項中,就是資料1,資料2,資料3,資料4

**attrib是一個dictionary(字典),它代表所有能對應上形參以外的關鍵字引數,在這個例項中,就是bold : False,font : 宋體,size : 9

關於這兩個引數的解釋真的十分別扭。我們一定要再詳細的看一下函式的呼叫,以及程式的執行效果。

我使用的環境:Windows 7 + Python 2.7.17 + PyCharm Community Edition 2016.1.5

10
最新評論
  • BSA-TRITC(10mg/ml) TRITC-BSA 牛血清白蛋白改性標記羅丹明
  • 滲透測試中的Exchange