python星号(*)和双星号(**) 函数动态参数匹配及解包操作方法
作者:插件开发 时间:2023-04-09 19:55:03
1.乘法和幂运算符
● 单个 * 用于乘法运算
● 两个 ** 表示幂运算
>>> 2*3
>>> 6
>>> 2**3
>>> 8
2.函数接收数量不固定的入参
在定义函数时,我们可以定义一个以一个或两个星号为前缀的参数,以捕获不限制数量的参数输入。总结如下:
● 以 一个 * 为前缀的参数可以将任意数量的参数以元组形式传入
● 以两个 ** 为前缀的参数可以将任意数量的参数以字典形式传入
3.限制函数入参仅以关键字形式输入
def genius(age, *, first_name, last_name):
print(first_name, last_name, 'is', age)
genius(28, first_name='Li', last_name='Bai')
# Li Bai is 28
上述代码采用了星号* 限制了星号之后的参数必须采用关键字形式来调用上述函数。
4. 可迭代对象解包操作
使用星号* 来解包可迭代对象。
A = [1, 2, 3]
B = (4, 5, 6)
C = {7, 8, 9}
L = [*A, *B, *C]
print(L)
# [1, 2, 3, 4, 5, 6, 8, 9, 7]
如果我们利用一个*作为dict 的前缀,它的key 将被解包;如果我们使用双星号** 作为前缀,其value 将被解包;此时我们必须显示使用key 来接收解包后的value 。
D = {'first': 1, 'second': 2, 'third': 3}
print(*D)
# first second third
# print(**D)
# TypeError: 'first' is an invalid keyword argument for print()
print('{first},{second},{third}'.format(**D))
# 1,2,3
5.扩展可迭代对象解包
解包的语法。
L = [1, 2, 3, 4, 5, 6, 7, 8]
a, *b = L
print(a)
# 1
print(b)
# [2, 3, 4, 5, 6, 7, 8]
来源:https://blog.csdn.net/m0_67316550/article/details/129307721
标签:python,星号(,),双星号(,),参数
0
投稿
猜你喜欢
python必备库Matplotlib画图神器
2021-03-29 21:16:08
通过vue如何设置header
2024-05-29 22:24:25
Python数据可视化处理库PyEcharts柱状图,饼图,线性图,词云图常用实例详解
2022-03-02 10:43:08
用FSO操作 xml
2008-09-03 12:26:00
python如何写try语句
2022-05-03 07:21:39
mysql使用LOAD语句批量录入数据方法
2010-03-09 16:31:00
Python的numpy库中将矩阵转换为列表等函数的方法
2021-06-19 12:18:21
在JavaScript中获取请求的URL参数
2024-04-25 13:08:43
Python实现操作Redis的高级用法分享
2022-07-29 04:26:29
关于微信小程序获取小程序码并接受buffer流保存为图片的方法
2023-07-20 09:54:01
微信公众平台开发教程⑤ 微信扫码支付模式介绍
2023-11-14 10:40:10
Python离线安装openpyxl模块的步骤
2021-08-10 16:04:04
getAllResponseHeaders获取网页的http头信息代码
2010-03-31 14:31:00
详解express + mock让前后台并行开发
2024-05-03 15:54:35
php下载远程大文件(获取远程文件大小)的实例
2024-05-03 15:29:47
浅析Python字符串索引、切片、格式化
2023-09-26 07:57:20
python程序中调用其他程序的实现
2021-08-07 12:33:16
js:校验IPv6地址的正则表达式
2023-06-30 23:21:33
跟老齐学Python之for循环语句
2021-12-22 04:52:50
.NET中获取程序根目录的常用方法介绍
2023-07-09 19:52:41