美文网首页
三、函数

三、函数

作者: 交易狗二哈 | 来源:发表于2017-03-01 19:16 被阅读16次

    1、背景

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

    while True:
        if cpu利用率 > 90%:
            #发送邮件提醒
            连接邮箱服务器
            发送邮件
            关闭连接
        
        if 硬盘使用空间 > 90%:
            #发送邮件提醒
            连接邮箱服务器
            发送邮件
            关闭连接
        
        if 内存占用 > 80%:
            #发送邮件提醒
            连接邮箱服务器
            发送邮件
            关闭连接
    

    腚眼一看上述代码,if条件语句下的内容可以被提取出来公用,如下:

    def 发送邮件(内容)
        #发送邮件提醒
        连接邮箱服务器
        发送邮件
        关闭连接
        
    while True:
        
        if cpu利用率 > 90%:
            发送邮件('CPU报警')
        
        if 硬盘使用空间 > 90%:
            发送邮件('硬盘报警')
        
        if 内存占用 > 80%:
    

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

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

    2、定义和使用

    (1)返回值

    默认为 None
    函数运行到 return 语句则退出该函数

    (2)参数

    普通参数

    默认参数

    默认参数需要放在参数列表最后面

    动态参数

    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 args
    
    
    执行方式一
    func(name='wupeiqi',age=18)
    
    执行方式二
    li = {'name':'wupeiqi', age:18, 'gender':'male'}
    func(**li)
    
    def func(*args, **kwargs):
    
        print args
        print kwargs
    

    相关文章

      网友评论

          本文标题:三、函数

          本文链接:https://www.haomeiwen.com/subject/isbuwttx.html