函数中参数时候很重要的,不仅仅是我们常用的一些必填参数,可缺省参数,还包括一些,关键字参数等,这边主要是自己一些学习心得~
1.必填参数
顾名思义必填参数就是调用函数的时候必须传入的参数
def func1(a): #a就是函数中必须传入的参数print(a)调用函数func1(3) #结果是3,如果不传入参数3调用就会出错
2.缺省参数
函数定义的时候会给一个默认值,如果调用函数的时候没有传入值就直接读取默认值
def func1(a,b=4): #b=4就是缺省参数,当b没有参数传入的时候就取默认值print(a)print(b)
func1(1) #结果是1,4
func1(1,3) #结果是1,3 当b给了值以后就取给的值当没有值的时候就取默认值
参数调用的顺序,必填参数一定在缺省参数前面
3.可变数量参数
参数:*args,函数定义的时候*将多个组装成元组,函数调用的时候*是将列表跟元组都一个个展开的作用
def func1(*args): #定义的时候是一个元组s=0for i in args:s=s+ireturn s
func1(1,2,3,4) #调用的时候是将元组的内容一个个传入10
调用的时候如果 可缺省参数没有指定的时候,除了必传参数有值以外,其他的值都是可变参数的值,并且会将可变参数自动封装成元组
def func1(a,*args,b=1):print(a)print(*args)print(b)
func1(1,2,3,4,5) #a=1,*args=(2,3,4,5),b=1
func1(1,2,3,4,b=5)#a=1,*args=(2,3,4),b=5
可变参数也可以不传数量,可变数量参数可以是任何类型的数值
4.关键字可变数量参数
参数:**kwargs,函数定义的时候会将参数封装成字典,调用的时候可以不传参数,如果不传参数结果就是一个空字典,传参要使用key=value的方式,这样会将这个参数自动封装成字典
def func1(a,**kwargs):print(a)print(**kwargs)
dict1={'name':'tom','age':'18'}
func1(10,**dict1)=func(10,name='tom',age='18') #调用的时候字典要使用key-value的方式结果10,{'name':'tom','age':'18'}
5.函数中参数的作用域
局部变量:在函数内部定义的变量,如果想将这个局部变量修改成全局变量,需要在函数内部变量名前面加global
def func1(a):s=0 s=s+areturn s
def func2():m=0m=s+m #s是上个函数的局部变量这边直接引用会报错return m
ll=func2()
print(ll)