欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

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

程序员文章站 2022-07-05 20:02:19
...

 

 

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"})

 

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