解釋 Python 類方法鏈式呼叫


在面向物件程式語言中,方法是一段可以執行特定任務以產生所需輸出的程式碼。方法在類內建立,並由類的物件呼叫。

方法在程式設計中非常有用,因為它透過將複雜的程式碼分解成可管理的塊來提供程式碼模組化。方法可以獨立於其他方法執行,因此可以輕鬆檢查程式中的單個功能。

Python 中的方法鏈式呼叫

方法鏈式呼叫是一種程式設計風格,其中多個方法呼叫會順序發生。它避免了在每個中間步驟賦值變數的麻煩,因為每個呼叫都在同一個物件上執行操作,然後將物件返回給下一個呼叫。

方法鏈式呼叫有兩個有用的好處:

  • 它可以減少整體程式碼長度,因為不需要建立無數的變數。

  • 它可以提高程式碼的可讀性,因為方法是順序呼叫的。

示例

在這個 Python 方法鏈式呼叫的簡單示例中,不同的 `CalculatorFunctions` 包含多個需要由計算器物件呼叫的方法。與其一個接一個地呼叫,不如將所有函式連結起來並在單行中呼叫。

為了使方法鏈式呼叫起作用,每個方法都必須返回類的物件,在本例中為 **self**。

class CalculatorFunctions(): def sum(self): print("Sum called") return self def difference(self): print("Difference called") return self def product(self): print("Product called") return self def quotient(self): print("Quotient called") return self if __name__ == "__main__": calculator = CalculatorFunctions() # Chaining all methods of CalculatorFunctions calculator.sum().difference().product().quotient()

輸出

以下是上述程式碼的輸出:

Sum called 
Difference called 
Product called 
Quotient called

示例

在這個 Python 內建方法鏈式呼叫的示例中,日期首先按空格分割,然後最後一個元素(星期六,星期日)按逗號分割,以便將其作為單獨的實體輸出。

days_of_week = "Monday Tuesday Wednesday Thursday Friday Saturday,Sunday" weekend_days = days_of_week.split()[-1].split(',') print(weekend_days)

輸出

以下是上述程式碼的輸出:

['Saturday', 'Sunday']

使用 Pandas 進行方法鏈式呼叫

Pandas 是一個用於解決資料科學和機器學習領域複雜問題的 Python 包。Pandas 包含許多可以連結在一起以減少程式碼長度的內建方法。

示例

Pandas 方法鏈式呼叫

在這個示例中,首先讀取 csv 檔案並將其分配給資料框。之後,將 Pandas 的不同方法連結在一起以操作 CSV 檔案。

**`.assign()`** 方法建立 Percentage 列,`.drop` 刪除 Gender 列,`.sort_value` 根據 Percentage 對資料進行排序,`.head` 給出 CSV 檔案的前三行結果。

import pandas as pd data_frame = pd.read_csv('E:/Marks.csv', index_col = 0) # Chaining different methods of pandas chained_data_frame = (data_frame.assign(Percentage = (data_frame['Marks']*100)/70) .drop(columns = 'Gender') .sort_values('Percentage', ascending = False) .head(3)) print(chained_data_frame)

輸出

以下是上述程式碼的輸出:

      Age   Marks    Percentage
ID
4     40    68       97.142857
2     20    65       92.857143
3     30    60       85.714286

使用 NumPy 進行方法鏈式呼叫

NumPy 是一個 Python 包,它支援多維陣列物件和多個例程,以便對陣列執行極快的操作。與 Pandas 方法一樣,NumPy 方法也可以連結。

示例

NumPy 方法鏈式呼叫

在這個示例中,不同的 NumPy 方法被連結在一起以建立一個 4x4 矩陣。**`.arange()`** 方法建立一個步長為 2,從 1 到 32 的矩陣,`.reshape` 將矩陣調整為 4x4 配置,`.clip` 用於將矩陣中的最小元素設定為 9,最大元素設定為 25。

import numpy as np # Chaining different methods of numpy chained_numpy = np.arange(1, 32, 2).reshape(4, 4).clip(9, 25) print(chained_numpy)

輸出

以下是上述程式碼的輸出

[[ 9  9  9  9]
 [ 9 11 13 15]
 [17 19 21 23]
 [25 25 25 25]]

更新於:2022年11月23日

14K+ 次瀏覽

啟動你的 職業生涯

透過完成課程獲得認證

開始學習
廣告