解释 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+ 次浏览

启动你的 职业生涯

通过完成课程获得认证

开始学习
广告
© . All rights reserved.