函数的参数
参数:传入到函数的值
当调用含参数的函数时,这些参数的值会被复制给函数中的对应参数
形式参数(formal parameter)函数创建和定义过程中,函数名后面括号里的参数,形式参数只是代表一个位置,一个变量名
实际参数(actual parameter)函数在调用过程中传入的参数,实际参数是一个具体内容,赋值到变量的值
定义函数时,参数可以有两种:
一种是在参数表中写明参数名key的参数,固定了顺序和数量的固定参数
def function(key1,key2,...)
def function(key1,key2 = value2,....) #定义缺省值
另一种是定义时还不知道会有多少参数传入的可变参数
def function(*args) #不带key的多个参数
def function(a,*args):
print(a)
print(args)
function(1,2,3,4,5)
>>>
1
(2, 3, 4, 5)
def function(**kwargs): #key = eval形式的多个参数
def function(**args):
print(args)
function(a = 1,b = 2,c = 3)
>>>
{'c': 3, 'a': 1, 'b': 2}
综合:
def function(key1,key2,key3=23):
print("k1=%s,k2=%s,k3=%s" % (key1,key2,key3))
function('v1','v2')
function('ab','cd',123)
function(key2='kk',key1='k')
>>>
k1=v1,k2=v2,k3=23
k1=ab,k2=cd,k3=123
k1=k,k2=kk,k3=23
调用函数的时候,可以传进两种参数:
一种是没有名字的位置参数
function(arg1,arg2,arg3...)会按照前后顺序对应到函数参数传入
另一种是带key的关键字参数
function(key1=arg1,key2=arg2...)由于指定了key,可以不按照顺序对应
如果混用,所有位置参数必须在前,关键字参数必须在后