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

开启您的职业生涯

通过完成课程获得认证

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