标签:重复 .com 操作 class nbsp 数据 最大 com 类型
一、背景
在学习函数之前,一直遵循:面向过程编程,即:根据业务逻辑从上到下实现功能,其往往用一长段代码来实现指定功能,开发过程中最常见的操作就是粘贴复制,也就是将之前实现的代码块复制到现需功能处,如下:
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 ... 6 返回值
函数的定义主要有如下要点:
1、返回值
函数是一个功能块,该功能到底执行成功与否,需要通过返回值来告知调用者。
以上要点中,比较重要有参数和返回值: 1 def 发送短信():
2 发送短信的代码... 3 if 发送成功: 4 return True 5 else: 6 return False 7 8 while True: 9 # 每次执行发送短信函数,都会将返回值自动赋值给result 10 # 之后,可以根据result来写日志,或重发等操作 11 result = 发送短信() 12 if result == False: 13 记录日志,短信发送失败...
返回值数=0:返回None
返回值数=1:返回object
返回值数>1:返回tuple
2、参数
函数的有三中不同的参数:
1 # ######### 定义函数 ######### 2 3 # name 叫做函数func的形式参数,简称:形参 4 def func(name): 5 print(name)
) 6 7 # ######### 执行函数 ######### 8 # ‘xiaoming‘ 叫做函数func的实际参数,简称:实参 9 func(‘xiaoming‘) 10 11 普通参数
1 # name 叫做函数func的形式参数,简称:形参 2 # def func(name, age=18): #age 是默认参数 如果下面没有指定参数,就直接用默认参数 3 # print("%s:%s" % (name, age)) 4 # 5 # 6 # # 指定参数 7 # func(‘wupeiqi‘, 19) #19 替代了默认参数 8 # # 使用默认参数 9 # func(‘alex‘)
def func(*args): print(args) # 执行方式一 func(11,33,4,4454,5) # 执行方式二 li = [11,2,2,3,3,4,54] func(*li) # 动态参数
def func(**kwargs): print(kwargs) # 执行方式一 func(name = ‘wupeiqi‘,age=18) # 执行方式二 li = {‘name‘:‘wupeiqi‘, "age":18, ‘gender‘:‘male‘} func(**li) #动态参数
标签:重复 .com 操作 class nbsp 数据 最大 com 类型
原文地址:http://www.cnblogs.com/sunkai1993/p/6119959.html