day3-函数介绍
概述
学习编程的过程中,遇到的最多的两种编程方式(编程方法):面向过程和面向对象。其实不管是哪一种,其实都是编程的方法论而已。但是现在有一种更古老的编程方式:函数式编程,以它的不保存的状态,不修改变量等特性,重新进入人们的视野。
- 面向对象 --->类 ---->class
- 面向过程 --->过程--->def
- 函数式编程-->函数--->def
定义
编程语言中函数定义:函数是逻辑结构化和过程化得一种编程方法。函数式编程就是先定义一个数学函数,然后按照这个数学模型用编程语言去实现它。
1.定义函数
def func1(): """testing1""" print("In function 1") return 0 x=func1() print("From function 1 is %s" %x) #输出 In function 1 From function 1 is 0 def:定义函数的关键字 test:函数名 ():内可定义形参 ”"“ ”“":文档描述 print:泛指代码块或程序处理逻辑 return:定义返回值
2.定义过程
def func2(): """testing2""" print("In function 2") y=func2() print("From function 2 is %s" %y) #输出 In function 2 From function 2 is None
小结:当一个函数/过程没有使用return显示的定义返回值时,python解释器会隐式的返回None,所以在python中即便是过程也可以算作函数。
为何使用函数?
没有函数的编程只是在写逻辑(功能),想脱离函数,重用你的逻辑,唯一的方法就是拷贝,如果我们需要写一个监控的程序,监控服务器的系统状况,当cpu/memory/disk等指标的使用量超过阀值时即发邮件报警,或许我们会这样写:
while True: if cpu利用率 > 90%: #发送邮件提醒 连接邮箱服务器 发送邮件 关闭连接 if 硬盘使用空间 > 90%: #发送邮件提醒 连接邮箱服务器 发送邮件 关闭连接 if 内存占用 > 80%: #发送邮件提醒 连接邮箱服务器 发送邮件 关闭连接
上面的代码实现了功能,但重复代码太多了,每次报警都要重写一段发邮件的代码,于是我们进行了优化,把重复的代码提取出来,放在一个公共的地方,起个名字,以后谁想用这段代码,就通过这个名字调用就行了,如下
def 发送邮件(内容) #发送邮件提醒 连接邮箱服务器 发送邮件 关闭连接 while True: if cpu利用率 > 90%: 发送邮件('CPU报警') if 硬盘使用空间 > 90%: 发送邮件('硬盘报警') if 内存占用 > 80%: 发送邮件('内存报警')
而使用函数式编程的优点我们总结有以下几点:
- 减少代码重复性
- 增加代码一致性
- 使程序变得可扩展