zoukankan      html  css  js  c++  java
  • 4-[函数]- 独立功能的代码块

    1.引出函数

    现在老板让你写一个监控程序,24小时全年无休的监控你们公司网站服务器的系统状况,当cpu\memory\disk等指标的使用量超过阀值时即发邮件报警,你掏空了所有的知识量,写出了以下代码

    while True:
        if cpu利用率 > 90%:
            #发送邮件提醒
            连接邮箱服务器
            发送邮件
            关闭连接
    
        if 硬盘使用空间 > 90%:
            #发送邮件提醒
            连接邮箱服务器
            发送邮件
            关闭连接
    
        if 内存占用 > 80%:
            #发送邮件提醒
            连接邮箱服务器
            发送邮件
            关闭连接
    View Code
    问题
    1.代码重复过多,一个劲的copy and paste不符合高端程序员的气质
    2.如果日后需要修改发邮件的这段代码,比如加入群发功能,那你就需要在所有用到这段代码的地方都修改一遍
    

      

    def 发送邮件(内容)
        #发送邮件提醒
        连接邮箱服务器
        发送邮件
        关闭连接
    
    while True:
    
        if cpu利用率 > 90%:
            发送邮件('CPU报警')
    
        if 硬盘使用空间 > 90%:
            发送邮件('硬盘报警')
    
        if 内存占用 > 80%:
            发送邮件('内存报警')
    View Code
    独立功能代码块 --->  封装 ----> 函数
    把具有独立功能带代码块,当成一个整体。这个整体称为函数(独立功能代码块)
    
    把一段代码“封装”成一个函数
    ”封装“  整体

    2.函数定义

    函数一词来源于数学,但编程中的「函数」概念,与数学中的函数是有很大不同的,具体区别,

    我们后面会讲,编程中的函数在英文中也有很多不同的叫法。在BASIC中叫做subroutine(子过程或子程序),

    在Pascal中叫做procedure(过程)和function,在C中只有function,在Java里面叫做method。

    • 定义: 函数是指将一组语句的集合通过一个名字(函数名)封装起来,要想执行这个函数,只需调用其函数名即可
    • 特性:
    1. 减少重复代码
    2. 使程序变的可扩展
    3. 使程序变得易维护
    • 语法:
    def sayhi():#函数名
        print("Hello, I'm nobody!")
    
    sayhi() #调用函数
    #下面这段代码
    a,b = 5,8
    c = a**b
    print(c)
    
    
    #改成用函数写
    def calc(x,y):
        res = x**y
        return res #返回函数执行结果
    
    c = calc(a,b) #结果赋值给c变量
    print(c)

    在定义函数的过程中,需要注意以下几点:

    • 函数代码块以def关键词开头,一个空格之后接函数标识符名称和圆括号(),再接个冒号。
    • 任何传入的参数必须放在圆括号中间。
    • 函数的第一行语句后可以选择性地使用文档字符串—用于存放函数说明。
    • 函数内容以冒号起始,并且缩进。
    • 使用return结束函数。默认返回None。
    • return语句依然在函数体内部,不能回退缩进。直到函数的所有代码写完,才回退缩进,表示函数体结束。
  • 相关阅读:
    HEC-ResSim原文档
    水文模型大全
    用word发布博客到博客园
    给你的浏览器标题栏加上小图标
    系统性能调优必知必会学习
    系统性能调优必知必会学习
    容器化学习
    Redisson学习
    mysql回顾
    事物、源码学习,spring-tx
  • 原文地址:https://www.cnblogs.com/venicid/p/8405285.html
Copyright © 2011-2022 走看看