解釋 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]]