python函数

函数                                                     
函数作用
    减少代码冗余
    逻辑清晰
    不易维护
函数分类
    内置函数
    自定义函数

函数定义
    函数先定义,后使用

函数使用
    1.定义阶段
    2.使用阶段
    语法
    def func_name (para1,para2,...)
        """文档注释"""
        函数体
        return value
定义函数的三种形式
    一、无参函数
        无参函数仅仅只是执行一些操作而已,通常有返回值
    二、有参函数
        函数的功能依赖于外部参数的传入,通常都有返回值
        三元表达式
        res=x if x > y else y
    三、空函数
        定义代码模块的框架
函数的调用
    按参数分
        定义时有参,调用时必须传入参数
        定义时无参,调用时无须传入参数
    按调用函数的形式和位置分
        调用函数的语句形式
            例如:foo()
        调用语句的表达式形式
            例如:res=my_max(1,2)*123
            print(res)
        把函数调用作为另外一个函数的参数
            例如:res=my_max(my_max(10,20),30)
            print(res)
函数的返回值
    1.一个值
    2.多个值
    3.None
        没有return
        return 什么都不写
        return None
    针对多个返回值的情况
    注:1.返回值是以元组的形式返回,可以用一个变量接收;
         2.(unpack)如果是用多个变量来接收,有几个返回值,接收时就得有几个变量来接收,如果想丢弃返回值,可以使用占位符

函数参数
    从大的角度区分
        形参
        实参
    详细区分
        位置参数
        关键字参数
        默认参数
        可变长参数
        命名关键字参数

        位置参数
            位置形参,必须被传值
            位置实参,与形参一一对应
        关键字参数
            key=value
            注意的问题
                 1.关键字实参必须位于位置实参的后面
                 2.不能重复对一个形参传值
        默认参数
            一、默认参数必须跟在非默认参数后,在定义阶段就会报错
            二、默认参数在定义阶段就已经被赋值了,而且只在定义阶段赋值一次
            三、默认参数通常定义成不可变类型
        可变长参数
            *args:会把溢出的按位置定义的实参都接收,以元组的形式赋值给args
            **kwargs:会把溢出的按关键字定义的实参都接收,以字典的形式赋值给kwargs
        命名关键字参数

posted @ 2017-05-15 18:45  geek_ace  阅读(162)  评论(0编辑  收藏  举报