python开始学习函数
通过def关键字创建函数
传一个参数~
传多个参数~
return返回值
在函数中写字符串相当于注释,而且这个注释是可以通过调用该函数的__doc__访问到的
关键字参数(按照关键字来索引参数)
默认参数(写函数的时候就给上默认值)
收集参数【又名可变参数】#在参数前面加上*号即可 #原理就是python把我传递的参数打包成一个元组
如果在收集参数的函数中还有其他的参数,我们必须使用关键字参数给它赋值,否则会报错! 如下图!
所以如果在使用收集参数的时候最好给非收集参数一个默认值,防止出错!,上方的test这样定义,会好得多!如下图:
可以看出print()函数也是使用了收集参数
全局变量可以在函数内部访问他,但是不要试图在函数内部修改它,如果写上修改它的语句,python实际上实在函数内部创建一个局部变量,只不过这个局部变量和全局变量名字一样,因此不会影响到全局变量!!!
但是在函数内部想修改全局变量也是可以的!看看小甲鱼怎么说!~~~~
在函数内部把全局变量前加上global关键字,让python识别这个是全局变量,就可以修改啦
内嵌函数(内部函数),就是函数内部嵌套函数【在定义函数的阶段哦,并不是我调用另一个函数哦】
闭包!!!! 返回的是一个函数
f1(2)是一个f2的函数调用这个f2的函数再给他传一个参数3 则就是f1(2)(3)>>返回的就是f2内部的调用
容器类型,就是元组啊,列表啊之类的,就是啥都可以往里面扔的 #容器类不存在栈内,因此,可以访问以及修改,记住吧!!!!这个解决方案要记住,使用容器列表!!! 这是python2时候解决方法,当然python3也可以使用
闭包函数中关键字:nonlocal声明闭包外作用的某个参数,可以包括外部函数的形参,他不是在闭包中的局部变量,这样就可以修改闭包外变量的值了