函数--基本格式

来源:转载

编程方法类型

1、面向对象:以类为主要思路,定义的关键字class2、面向过程:以过程为主的思路,定义的关键字为def3、函数式编程:(最早)以函数为主要思路,定义的关键字为def注意:过程和函数的区别就是:过程没有return 

函数式编程的优势

1、减少代码的重复使用:2、方便代码的可扩展性:3、方便调整整体代码:

背景:

在学习函数之前,一直遵循:面向过程编程,即:根据业务逻辑从上到下实现功能,其往往用一长段代码来实现指定功能,开发过程中最常见的操作就是粘贴复制,也就是将之前实现的代码块复制到现需功能处,如下:

 1 while True: 2 if cpu利用率 > 90%: 3 #发送邮件提醒 4 连接邮箱服务器 5 发送邮件 6 关闭连接 7 8 if 硬盘使用空间 > 90%: 9 #发送邮件提醒10 连接邮箱服务器11 发送邮件12 关闭连接13 14 if 内存占用 > 80%:15 #发送邮件提醒16 连接邮箱服务器17 发送邮件18 关闭连接

通过上述代码可以判断,if条件语句下的内容可以被提取出来公用,如下:

 1 def 发送邮件(内容) 2 #发送邮件提醒 3 连接邮箱服务器 4 发送邮件 5 关闭连接 6 7 while True: 8 9 if cpu利用率 > 90%:10 发送邮件('CPU报警')11 12 if 硬盘使用空间 > 90%:13 发送邮件('硬盘报警')14 15 if 内存占用 > 80%:

对于上述的两种实现方式,第二次必然比第一次的重用性和可读性要好,其实这就是函数式编程和面向过程编程的区别:

  • 函数式:将某功能代码封装到函数中,日后便无需重复编写,仅调用函数即可
  • 面向对象:对函数进行分类和封装,让开发“更快更好更强...”
  • 函数式编程:最重要的是增强代码的重用性和可读性。

函数的格式

1 def 函数名(参数):2 .....3 函数体(功能脚本)4 .....5 返回值

函数的定义特点

1、def:表示创建函数的关键字。2、函数名:函数的名称,日后根据函数名调用函数。3、(参数):为函数体提供数据。4、函数体:函数中进行一系列的逻辑计算,如:发送邮件,计算出[11,22,33,44,55]中最大的数等。。。。5、返回值:函数是一个功能块,该功能到底执行成功与否,需要通过返回值来告知调用者。

函数的主要作用:把一个功能放到一个函数里,并起好名称,将来可以进行调用。

发送邮件函数

 1 #!/usr/bin/env python 2 # -*- coding:utf8 -*- 3 # Author:Dong Ye 4 5 def sendmail(): 6     import smtplib 7     from email.mime.text import MIMEText 8     from email.utils import formataddr 9 10     msg = MIMEText ('第一次玩邮件测试,骚扰下,请见谅','plain','utf-8')11     msg['From'] = formataddr(["系统告警",'[email protected]'])12     msg['To'] = formataddr(["dongye",'[email protected]'])13     msg['To'] = formataddr(["dongye",'[email protected]'])14     msg['subject'] = "告警邮件"15 16     server = smtplib.SMTP("smtp.126.com",25)17     server.login("[email protected]",'abiao555')18     server.sendmail('[email protected]',['[email protected]','[email protected]',], msg.as_string())19     server.quit()20 sendmail()

分享给朋友:
您可能感兴趣的文章:
随机阅读: