函数----形参和实参,位置参数与关键字参数

1.形参和实参


形参:函数完成其工作时所需的一项信息,不占用内存空间,只有在被调用时才会占用内存空间,调用完了即被释放
实参:实际参数,调用函数时传给函数的信息

例如:

def hello(name):#name是形参
    print(name)

hello("lian") #"lian"是实参

2.位置参数和关键字参数

位置参数: 在调用函数时,Python必须将每个实参都关联到函数定义的一个形参中,最简单的关联方式就是基于实参的顺序。

关键字参数 :传递给函数的是键值对。由于在实参中的将名称和值关联起来,所以在传入时无需考虑顺序

举例

def hello(name1,name2):
    pass

hello("lian","zong") #位置实参

hello(name1="lian",name2="zong") #  关键字参数
 位置参数和关键字参数混合使用时:

  1、位置参数必须写在关键字参数的左边

 2、同一个参数不能两次或者多次传值,只能传一次
def hello(name,age,height):
    pass
hello("lian",age = 20,height = 175) #正确的混合方式

hello(name = "lian",20,height = 175)#错误的方式,位置参数必须放在关键字左边,否则报错

3.参数组

* 的作用其实就是把序列 args 中的每个元素,当作位置参数传进去。
** 的作用则是把字典 kwargs 变成关键字参数传递。


def calc(x,y,*args):
    res =x+y
    print(x,y,args)#*args-->多于的参数,位置参数传入,以元组的形式接收
    
calc(1,2,7,8,6)
calc(2,3,{"name":"alex"}) #即使传入字典,字典当成整体也会以元组的方式被接收
calc(3,4,["alex","James"],"hello world")
calc(3,4,*["alex","James"]) #相当于该列表遍历,逐个添加至列表并且转为元组
calc(3,4,*"alex")
def calc(x,y,**kwargs):
    res =x+y
    #print(x,y)
    print(x,y,kwargs)#**kwargs-->多于的参数,位置参数传入,以字典的形式接收
    return res
calc(x=1,y=3,name="alex")
calc(1,2,**{"name":"Amanda"})

猜你喜欢

转载自blog.csdn.net/Lzs1998/article/details/87896706