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
  • asp之家 网络编程 m.aspxhome.com