提到函数我们都能说出很多种,比如:指数函数,对数函数,正比例函数等。但是我们今天学的不是我们常见的函数,而是我们python中的函数,学习python函数我们从以下几个方面来看。
一、引用传递:引用传递实质是在传递内存地址
二、函数默认值:在python中,可以为函数的参数给予默认值,一旦存在摸个默认值,那么再调用的时候,如果不传参数,则按默认值进行,以此来减少用时的复杂操作。(解释:在定义函数时,如果存在默认值的参数,一定要写在没有默认值的参数后面,否则在调用时,无法确定参数到底传给那个参数。)
三、全局变量和局部变量:全局变量是定义在py文件中,能被任何函数正常访问的变量。而局部变量是指在函数内部的变量。(解释:函数本身是变量,存储在堆中,但是函数的调运是在栈中调用)
四、参数问题:在python中,对参数问题可以从以下方面分析,默认值参数、可变参数、命名参数、万能参数等。(解释:python中,函数时对象,函数中的参数可以是任何类型。所以对python来说,函数的参数可以是函数)
五、匿名函数:提到函数我们都能说出很多种,比如:指数函数,对数函数,正比例函数等。但是我们今天学的不是我们常见的函数,而是我们python中的函数,学习python函数我们从以下几个方面来看。
一、引用传递:引用传递实质是在传递内存地址
二、函数默认值:在python中,可以为函数的参数给予默认值,一旦存在摸个默认值,那么再调用的时候,如果不传参数,则按默认值进行,以此来减少用时的复杂操作。(解释:在定义函数时,如果存在默认值的参数,一定要写在没有默认值的参数后面,否则在调用时,无法确定参数到底传给那个参数。)
三、全局变量和局部变量:全局变量是定义在py文件中,能被任何函数正常访问的变量。而局部变量是指在函数内部的变量。(解释:函数本身是变量,存储在堆中,但是函数的调运是在栈中调用)
四、参数问题:在python中,对参数问题可以从以下方面分析,默认值参数、可变参数、命名参数、万能参数等。(解释:python中,函数时对象,函数中的参数可以是任何类型。所以对python来说,函数的参数可以是函数)
args (可变参数) def show (name, age, *args)
kwargs(命名参数) def show (name , age, **kwargs)
args kwargs(万能参数) def show (name , *age, **kwargs)
五、匿名函数:(表达式:lambda)
lambda:语言
def a():
print(“hello world”)
lambda:print(“hello world”) def add(x, y):
return x + y # lambda x,y: x + y
(有缺点:简化代码书写;增加代码复杂度{都次使用时}
六、递归:(函数调用自身的现象)
满足条件:1、函数自身调用自身 2、要有终止条件