Python大数据与机器学习实战
上QQ阅读APP看本书,新人免费读10天
设备和账号都新为新人

1.5 Python函数和类

相对于C语言和Java,Python的函数和类的用法更加灵活。Python用def关键字定义函数,除函数的一般格式外,它还支持使用lambda定义匿名函数。本节将介绍Python的函数和类的基本使用方法。

1.5.1 定义和使用函数

Python函数的定义和使用方法和其他语言类似,本小节以示例的方式展示Python函数区别于其他语言的特殊用法。Python使用def定义函数,返回结果可以是各种数据类型,形如:

使用*arg方式可支持不定长参数,用**kwargs方式支持字典类型参数。

相对的,当调用函数时,如果想将一个数组或字典作为函数参数,就可以使用*实现。

1.5.2 lambda匿名函数

匿名函数是不需要使用def显示定义的函数,通常用于函数功能比较简单,且在一行之内即可实现的功能,一般只使用一次。lambda定义函数的表达式看起来比def定义函数的更简洁。

举例如下:

其中,x是形参,x+1为函数返回值。在第3章Pandas部分将用lambda表达式实现表处理。

1.5.3 类和继承

类增加了代码的复用性,使代码更便于阅读。Python用class关键字定义类,如果继承自其他类,就将其父类名放在括号内,然后加入冒号和换行。下面用缩进代码作为类的实现,类的构造函数为__init__,其参数是在实例化时需要传入的参数。类中函数的第一个参数指代类的当前实例,在调用时不需要指定参数。

下面是类继承的实例:

可以看到,它使用了其父类的构造函数,而子类中重写了show方法,实现了类的多态性。