本篇主要是对函数进一步展开,目的是使我们写的函数写更加具有扩展性。包括变量的作用域、函数的缺省参数、函数的不确定参数等。希望感兴趣的小伙伴可以坚持看下去同时欢迎提出宝贵的意见让我们一起进步!
#01:变量的作用域
1)全局:在一个.py(模块)里直接定义一个变量,从这一行开始都可以使用这个变量;全部变量可在函数内部调用
2)局部:函数内部的变量,只能在函数内部使用
#02:函数内部修改全局变量(global x)
#03:缺省参数
1)必填参数:函数定义的时候只有变量名,没有缺省值的参数
2)缺省参数:在函数定义的时候,给了初始值。如def func(a,b,c=100)
3)函数调用的时候若传入c的值,以实际传入为准
4)函数调用的时候不传入c的值,以默认(定义时)为准
5)缺省参数作用:方便省事;这个默认值一般是考虑到调用者大部分时候使用的场景(值)
6)注意事项:
①缺省参数可以定义多个
②定义函数的时候一定要必填参数在前,缺省参数在后
③虽然可缺省参数可以为代码带来省事效果,但是缺省参数有个数的限制
#04:可变数量参数*
1)可变数量参数:在参数前面加个*即可不限制个数。def func(a,*b,c=3)
2) 函数调用的时候若想给c传入值 , 必须必须指名道姓写出c=4 , 否则都属于可变量参数的值
3)参数展开:若传入一个元组/列表类型数据:"*元组/列表" ,则可以将元组/列表展开传值
4)注意事项:
①print没有个数限制。即:print内部有可变数量参数
②可变数量参数封装成一个元组()形式
③可变数量参数的数量可以是0个,可以是多个(非必传)
④位置顺序:必填参数靠左写,可变数量参数往后写。即:必填参数、可变数量参数、缺省参数
#05:关键字可变数量参数**kwargs:
1)关键字可变数量参数 :允许在函数调用时 , 传入任意个含参数名的参数。def func(a,*b,c=3,**kwargs):
2)传入形式:变量=值
3)作用:如同字典效果:方便查找
4)参数展开:函数调用时需要传入一个完整的字典 , 把键名作为一个变量名传入,因此键名一定是字符串。**dic
5)注意事项:
①关键字可变数量参数封装成一个字典{键:值}形式
②关键字可变数量参数的数量可以是0个,可以是多个(非必传)
③位置顺序:必填参数、可变数量参数、缺省参数、关键字可变数量参数
④建议:以后定义字典时,键一般用字符串
#06:函数调用时传值,只要出现一个"变量=值"参数,后面的参数就必须是"变量=值"参数!!