函数是什么?
函数:为了解决某一问题,或者某些问题具有名称的代码集合。是一种功能、行为动作。
为什么需要函数?
解决代码的重复问题
python如何定义函数
关键字 def # define function
def 函数名称([参数列表]):
# 函数体
# 如果需要返回值,则使用return关键字返回结果
# [return 函数返回值]
如何调用函数
函数名称([实参列表])
可变参数------*args
关键字参数 **aa,bb,一般来说用**kwargs
函数分类:
|-- 通过函数是否存在参数
|-- 有参函数
|-- 无参函数
|-- 函数是否存在返回值
|-- 有返回值的
|-- 无返回值
|-- 函数定义者的角度
|-- 官方函数(python官方提供的各种)
|-- 第三方函数
|-- 自己定义的函数
局部变量和全局变量:
局部变量(本地变量:local variable):指的是定义在函数内部的变量
全局变量(global variable):直接定义在脚本中,在整体脚本中,都有效的变量
注意:在python的函数中,默认不能修改全局变量
如果说,一定要在python函数中修改全局变量,需要提前声明!!!
函数的调用的内存分析:
函数的调用,在内存中是压栈调用
函数本质是对象,是存储在堆内存中的
函数的参数:
默认值参数(default arguments):
也就是,如果在定义函数时,其中有些参数将来调用时,绝大多数情况下,值是固定的,则
为了调用了方便,可以设置默认值参数。
可变参数:
命名(关键字)参数:
引用传递和值传递:
引用传递:传递时传递的是对象的地址(引用、指针),所以真正的操作是发生在堆内存中
值传递:仅仅传递值本身,传递后传给了局部变量(形参),调用完成后,局部变量则弹栈回收(pop)
不会影响实参。
匿名函数lambda表达式:
1、python的函数的参数,可以是任意类型
python中的函数参数,可以是任意类型,只要是对象即可。
2、在python,函数也是对象!!!
匿名函数:
没有名称的函数,被称为匿名函数!!!
lambda表达式
lambda关键字
lambda [参数列表]: 函数体 # python的匿名函数