解釋Python類方法鏈式呼叫
在面向物件程式語言中,方法是一段可以執行特定任務以產生所需輸出的程式碼。方法是在類內建立的,並由類的物件呼叫。
方法在程式設計中非常有用,因為它透過將複雜的程式碼分解成可管理的塊來提供程式碼模組化。方法可以獨立於其他方法執行,因此可以輕鬆檢查程式中的各個功能。
Python中的方法鏈式呼叫
方法鏈式呼叫是一種程式設計風格,其中多個方法呼叫會按順序依次執行。它消除了在每個中間步驟賦值變數的麻煩,因為每個呼叫都在同一個物件上執行操作,然後將該物件返回給下一個呼叫。
方法鏈式呼叫有兩個有用的好處:
它可以減少整體程式碼的長度,因為不需要建立無數的變數。
它可以提高程式碼的可讀性,因為方法是按順序呼叫的。
示例
在這個Python方法鏈式呼叫的簡單示例中,不同的`CalculatorFunctions`包含多個需要由`calculator`物件呼叫的方法。無需一個接一個地呼叫,所有函式都串聯起來並在一行中呼叫。
為了使方法鏈式呼叫工作,每個方法都必須返回該類的物件,在本例中是`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]]