zoukankan      html  css  js  c++  java
  • 函数定义和使用

     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()
    发送邮件实例
  • 相关阅读:
    消息队列优缺点及各种MQ对比
    反射详解
    Tomcat线程模型及调优
    Tomcat结构及类加载机制
    Spring AOP
    Spring IOC
    Spring介绍
    SpringMVC介绍
    Mybatis介绍
    Ajax笔记(一)
  • 原文地址:https://www.cnblogs.com/shiluoliming/p/6215863.html
Copyright © 2011-2022 走看看