函数参数(函数参数传递的三种方式)

网友投稿 1074 2022-09-12

函数参数(函数参数传递的三种方式)

函数参数(函数参数传递的三种方式)

1、形参 与 实参是什么?

形参(形式参数):指的是在定义函数时,括号内定义的参数,形参其实就变量名

实参(实际参数),指的是在调用函数时,括号内传入的值,实参其实就变量的值

1 #x,y是形参

2 def func(x,y): #x=10,y=11

3 print(x)

4 print(y)

1 #10,11是实参

2 func(10,11)

注意:

实参值(变量的值)与形参(变量名)的绑定关系只在函数调用时才会生效/绑定, 在函数调用结束后就立刻解除绑定

2、位置参数 位置形参 位置实参

位置即顺序,位置参参数指的就是按照从左到右的顺序依次定义的参数

3、 关键字参数

在调用函数时,按照key=value的形式定义的实参,称为关键字参数

4、默认参数

在定义阶段,已经为某个形参赋值,那么该形参叫默认参数

(1) 定义阶段已有值,代表着调用阶段可以不传值

(2) 位置形参必须在默认参数的前面

1 def func(y=i,x): #报错,位置应该在默认形参的前面

2 pass

(3) 默认参数的值只在定义阶段赋值一次,也就是说默认参数的值再定义阶段就固定死了

(4)记住:默认参数的值应该设置为不可变类型

应用:

对于经常需要变化的值,需要将对应的形参定义成 位置形参

对于大多数情况值都一样的情况,需要将对应的形参定义成 默认形参

5、可变长度参数

参数的个数不固定,实参有 按位置定义(*)的实参和 按关键字定义(**)的实参

形参里包含 * **

(1)*会将溢出的位置实参全部接收,然后保存成元组的形式赋值给args

1 def foo(x,y,z,*args): #位置

2 print(x,y,z)

3 print(args) ##args=(4,5,6,7,8)

4

5 foo(1,2,3,4,5,6,7,8,)

(2) **会将溢出的关键字实参全部接收,然后保存成字典的形式赋值给kwargs

1 def foo(x,y,z,**kwargs): #关键字

2 print(x,y,z)

3 print(kwargs) # kwargs={'c':3,'a':1,'b':2}

4

5 foo(x=1,y=2,z=3,a=1,b=2,c=3)

实参里包含 * **

(1)一旦碰到实参加*,就把该实参的值打散

错误例子

1 def foo(x,y,z):

2 print(x,y,z)

3

4 foo(*[1,2,3]) #foo(1,2,3)

5 foo(*[1,2,3,4]) #foo(1,2,3,4) 多了一个 报错

6 foo(*[1,2,]) #foo(1,2,) 少了一个 报错

(2)一旦碰到实参加**,就把该实参的值打散

重点

(3)组合使用

共2页: 上一页12下一页

版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:win10系统安装jdk
下一篇:企业如何低成本解决软件许可证正版化难题
相关文章

 发表评论

暂时没有评论,来抢沙发吧~