解释 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]]
数据结构
网络
关系数据库管理系统 (RDBMS)
操作系统
Java
iOS
HTML
CSS
Android
Python
C 编程
C++
C#
MongoDB
MySQL
Javascript
PHP