python形参和实参中的特殊字符讲解
python中形参和实参的特殊字符有哪些?
参考官方文档: https://hlog.cc/docs/python/tutorial/controlflow.html#positional-or-keyword-arguments
位置参数/关键字参数
- 位置参数, 同其他编程语言一致, 位置参数形参的顺序很重要
- 关键字参数, 以kwarg=value形式定义的参数
关键字参数使用注意:
- 关键字参数必须跟在位置参数后面
- 关键字参数的顺序可以打乱
- 不能对同一个关键字参数多次赋值
特殊参数
形参中的 /
*
参数
# pos1,pos2 必须是位置参数
# / 表示此符号前的参数只能是位置参数
# pos_or_kwd 位置参数或关键字参数都可以
# * 表示此符号后的参数只能是关键字参数
# kwd1,kwd2 必须是关键字参数
def f(pos1, pos2, /, pos_or_kwd, *, kwd1, kwd2):
pass
# 此只能传位置参数
def g(arg1, arg2, arg3, /)
pass
# 此函数只能传关键字参数
def h(*, arg1, arg2, arg3)
pass
形参中 *arguments
**keywords
使用注意事项:
- 同时存在 * 与 ** 时, 一个星号的参数必须在两个星号的前面
*arguments
表示可以接受任意数量
的实参, 且这些实参都储存在元组
中
def abc(a, *args):
print(args)
# 输出:(2, 3, 4)
abc(1, 2, 3, 4)
**keywords
表示可以接受任意数量
的实参, 且这些实参都储存在字典
中
def abc(a, **args):
print(args)
# 输出:{"x":2, "y":3, "z":4}
abc(1, x=2, y=3, z=4)
def abc(a, *args1, **args2):
print(args1)
print(args2)
# 输出:
# (4, 5, 6)
# {"x":2, "y":3, "z":4}
abc(1, 4, 5, 6, x=2, y=3, z=4)
# 输出:
# ((2, 3), 99, {'m': 4, 'n': 5}, 88)
# {}
abc(1,(2,3),99,dict(m=4,n=5),88)
# 输出:
# ((2, 3), 99)
# {'kkk': {'m': 4, 'n': 5}, 'mmm': 88}
abc(1,(2,3),99,kkk=dict(m=4,n=5),mmm=88)
实参中使用 *
, **
表示解包实参列表
def aaa(x, y):
print(x,"|",y)
# 都输出: 5 | 6
# 解包后与形参的位置对应
aaa(*(5,6))
aaa(*[5,6])
# 都输出: 5 | 6
# 解包后与关键字参数的关键字对应
# 字典必须与函数参数名一致,否则报错
aaa(**{"x":5,"y":6})
aaa(**dict(x=5,y=6))
最后更新于 2023-04-27 19:40:48 并被添加「」标签,已有 596 位童鞋阅读过。
本站使用「署名 4.0 国际」创作共享协议,可自由转载、引用,但需署名作者且注明文章出处
此处评论已关闭