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

更新於:2022年11月23日

14K+ 瀏覽量

開啟您的職業生涯

透過完成課程獲得認證

開始學習
廣告