吾爱破解 - 52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 1316|回复: 1
收起左侧

[Python 转载] 【笔记】参数的类型

[复制链接]
cccyyys 发表于 2021-6-17 10:01
参数的类型
1、位置参数
概念:函数调用时,实参默认按照位置顺序传递,需要个数和形参匹配,按照位置传递的参数。
[Python] 纯文本查看 复制代码
def f(a,b,c):
    print(a,b,c)

f(10,20,30)

运行结果为:10 20 30
这就是一个简单地位置参数,实参按照位置进行传递,形参与实参必须一一对应,否则会报错。
2、默认值参数
概念:我们可以在某些参数中设置默认值,这样这些参数在传递时是可选的。
[Python] 纯文本查看 复制代码
def f1(a,b,c=5,d=6):#默认值参数
    print(a,b,c,d)
    
f1(10,20)
f1(10,60,19)#两种都不会报错,因为c和d都有默认值

运行结果为:10 20 5 6
10 60 19 6
这是一个默认值参数,大家可以看到,我在调用的时候,实参是2个或者3个的时候都没有报错,这是因为c、d都有默认的值,我们只需要按照位置顺序把前面两个参数定义好,后面两个参数根据实际情况可写可不写。
3、命名参数
概念:按照形参的名称传递参数,叫做“命名参数”。
[Python] 纯文本查看 复制代码
def f2(a,b,c):
    print(a,b,c)

f2(10,20,30)  #位置参数
f2(c=100,a=20,b=50)#命名参数

运行结果为:10 20 30
20 50 100
4、可变参数
概念:可变参数值的是“可变数量的参数”。分为*param(一个星号):将多个参数收集到一个“元组”对象中;**param(两个星号),将多个参数收集到一个“字典”对象中
[Python] 纯文本查看 复制代码
def f3(a,b,*c,**d):
    print(a,b,c,d)

f3(10,50,5,6,7,8,name='cys',age=18)
f3(a=5,b=4,c=(10,8,7,6),d={'name':'cys','age':18})

运行结果为:10 50 (5, 6, 7, 8) {'name': 'cys', 'age': 18}
5 4 () {'c': (10, 8, 7, 6), 'd': {'name': 'cys', 'age': 18}}
这是一个可变参数,注意引用参数的时候不要像命名参数这样引用,否则c会是一个空的元组,d默认是字典对象,一旦像命名参数一样引用的话,c=(10,8,7,6),d={'name':'cys','age':18}  会默认保存到d这个字典对象中,导致c取不到值。
5、强制命名参数
概念:在带星号的“可变参数”后面增加新的参数,必须在调用的时候强制命名参数
[Python] 纯文本查看 复制代码
def f4(*a,b,c):#强制命名参数
    print(a,b,c)
    
f4(2,3,b=5,c=10)

该参数在调用时因为元组在前,不能确定元组的数据在哪个位置截止,所以在传递b和c的时候,必须命名。
关于可变参数,不太确定我说的对不对,f3(a=5,b=4,c=(10,8,7,6),d={'name':'cys','age':18})  这是我自己敲的时候试了一遍,本以为a,b,c,d都会出来,但是运行完之后c和d的值都被放到字典里了,不太明白原理,欢迎大佬过来讲解。

免费评分

参与人数 1吾爱币 +1 热心值 +1 收起 理由
1412KID + 1 + 1 用心讨论,共获提升!

查看全部评分

发帖前要善用论坛搜索功能,那里可能会有你要找的答案或者已经有人发布过相同内容了,请勿重复发帖。

Spa495 发表于 2021-6-17 10:29
学习了,谢谢楼子
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则

返回列表

RSS订阅|小黑屋|处罚记录|联系我们|吾爱破解 - LCG - LSG ( 京ICP备16042023号 | 京公网安备 11010502030087号 )

GMT+8, 2024-11-25 15:38

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表