首页 > 代码库 > 函数定义和使用

函数定义和使用

 1 def 函数名(参数):
 2        
 3     ...
 4     函数体
 5     ...
 6     返回值
 7 函数的定义主要有如下要点:
 8 def:表示函数的关键字
 9 函数名:函数的名称,日后根据函数名调用函数
10 函数体:函数中进行一系列的逻辑计算,如:发送邮件、计算出 [11,22,38,888,2]中的最大数等...
11 参数:为函数体提供数据
12 返回值:当函数执行完毕后,可以给调用者返回数据。

1、返回值

函数是一个功能块,该功能到底执行成功与否,需要通过返回值来告知调用者。

以上要点中,比较重要有参数和返回值:

 1 def 发送短信():
 2        
 3     发送短信的代码...
 4    
 5     if 发送成功:
 6         return True
 7     else:
 8         return False
 9    
10    
11 while True:
12        
13     # 每次执行发送短信函数,都会将返回值自动赋值给result
14     # 之后,可以根据result来写日志,或重发等操作
15    
16     result = 发送短信()
17     if result == False:
18         记录日志,短信发送失败...

2、参数

为什么要有参数?

技术分享
 1 def CPU报警邮件()
 2     #发送邮件提醒
 3     连接邮箱服务器
 4     发送邮件
 5     关闭连接
 6 
 7 def 硬盘报警邮件()
 8     #发送邮件提醒
 9     连接邮箱服务器
10     发送邮件
11     关闭连接
12 
13 def 内存报警邮件()
14     #发送邮件提醒
15     连接邮箱服务器
16     发送邮件
17     关闭连接
18  
19 while True:
20  
21     if cpu利用率 > 90%:
22         CPU报警邮件()
23  
24     if 硬盘使用空间 > 90%:
25         硬盘报警邮件()
26  
27     if 内存占用 > 80%:
28         内存报警邮件()
无参数实现
技术分享
 1 def 发送邮件(邮件内容)
 2 
 3     #发送邮件提醒
 4     连接邮箱服务器
 5     发送邮件
 6     关闭连接
 7 
 8  
 9 while True:
10  
11     if cpu利用率 > 90%:
12         发送邮件("CPU报警了。")
13  
14     if 硬盘使用空间 > 90%:
15         发送邮件("硬盘报警了。")
16  
17     if 内存占用 > 80%:
18         发送邮件("内存报警了。")
有参数实现

函数的有三中不同的参数:

 

技术分享
1 # ######### 定义函数 ######### 
2 
3 # name 叫做函数func的形式参数,简称:形参
4 def func(name):
5     print name
6 
7 # ######### 执行函数 ######### 
8 #  ‘wupeiqi‘ 叫做函数func的实际参数,简称:实参
9 func(wupeiqi)
普通参数

 

 

技术分享
 1 def func(name, age = 18):
 2     
 3     print "%s:%s" %(name,age)
 4 
 5 # 指定参数
 6 func(wupeiqi, 19)
 7 # 使用默认参数
 8 func(alex)
 9 
10 注:默认参数需要放在参数列表最后
默认参数
技术分享
 1 def func(**kwargs):
 2 
 3     print args
 4 
 5 
 6 # 执行方式一
 7 func(name=wupeiqi,age=18)
 8 
 9 # 执行方式二
10 li = {name:wupeiqi, age:18, gender:male}
11 func(**li)
动态参数
技术分享
1 def func(*args, **kwargs):
2 
3     print args
4     print kwargs
动态参数
技术分享
 1 def func(**kwargs):
 2 
 3     print args
 4 
 5 
 6 # 执行方式一
 7 func(name=wupeiqi,age=18)
 8 
 9 # 执行方式二
10 li = {name:wupeiqi, age:18, gender:male}
11 func(**li)
动态参数
技术分享
 1 import smtplib
 2 from email.mime.text import MIMEText
 3 from email.utils import formataddr
 4   
 5   
 6 msg = MIMEText(邮件内容, plain, utf-8)
 7 msg[From] = formataddr(["武沛齐",wptawy@126.com])
 8 msg[To] = formataddr(["走人",424662508@qq.com])
 9 msg[Subject] = "主题"
10   
11 server = smtplib.SMTP("smtp.126.com", 25)
12 server.login("wptawy@126.com", "邮箱密码")
13 server.sendmail(wptawy@126.com, [424662508@qq.com,], msg.as_string())
14 server.quit()
发送邮件实例

 

函数定义和使用