函数---返回值
回顾
1、def:表示创建函数的关键字。
2、函数名:函数的名称,日后根据函数名调用函数。
3、(参数):为函数体提供数据。
4、函数体:函数中进行一系列的逻辑计算,如:发送邮件,计算出[11,22,33,44,55]中最大的数等。。。。
5、返回值:函数是一个功能块,该功能到底执行成功与否,需要通过返回值来告知调用者。
6、如果是定义的函数,则函数体是不执行的。只有调用的时候才会执行
一、返回值:
函数是一个功能块,该功能到底执行成功与否,需要通过返回值来告知调用者。
返回值语法:
def 发送短信(): 发送短信的代码... if 发送成功: return True else: return False while True: # 每次执行发送短信函数,都会将返回值自动赋值给result # 之后,可以根据result来写日志,或重发等操作 result = 发送短信() if result == False: 记录日志,短信发送失败...
例如:下面这个发邮件的函数,要想知道是否添加成功,可以使用返回值的方式来进行发送。
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(["系统告警",'abobo1984@126.com']) 12 msg['To'] = formataddr(["dongye",'wulicheng@gomeholdings.com']) 13 msg['To'] = formataddr(["dongye",'dongye@gomeholdings.com']) 14 msg['subject'] = "告警邮件" 15 16 server = smtplib.SMTP("smtp.126.com",25) 17 server.login("abobo1984@126.com",'abiao555') 18 server.sendmail('abobo1984@126.com',['wulicheng@gomeholdings.com','dongye@gomeholdings.com',], msg.as_string()) 19 server.quit() 20 sendmail()
格式如下:
1 #!/usr/bin/env python 2 # -*- coding:utf8 -*- 3 # Author:Dong Ye 4 def sendmail(): 5 try: #尝试执行发送邮件代码: 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(["系统告警",'abobo1984@126.com']) 12 msg['To'] = formataddr(["dongye",'dongye@gomeholdings.com']) 13 msg['subject'] = "告警邮件" 14 15 server = smtplib.SMTP("smtp.126.com",25) 16 server.login("abobo1984@126.com",'abiao555') 17 server.sendmail('abobo1984@126.com',['dongye@gomeholdings.com',], msg.as_string()) 18 server.quit() 19 20 except: 21 #如果发送失败返回False,并退出程序 22 #return "失败" 23 return False 24 else: 25 #如果发送成功返回True,并退出程序 26 return "成功" 27 return True 28 29 ret = sendmail() 30 31 if ret == True: 32 print("发送成功") 33 else: 34 print("发送失败")
注释:
1、在执行函数时,如果遇到了return,则会返会return的定义值。
2、return的定义值会直接赋值给接收体“ret = sendmail()”。
3、在函数中一旦执行了return,函数执行过程会立即终止,不会再往后执行。
4、在python中如果没有return返回值时,则python会默认指定一个返回值为:None
5、带return的返回值,执行顺序如下: