python星号(*)和双星号(**) 函数动态参数匹配及解包操作方法

 更新时间:2023年03月04日 09:36:37   作者:插件开发  
这篇文章主要介绍了python星号(*)和双星号(**) 函数动态参数匹配及解包操作,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下

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]

到此这篇关于python星号(*)和双星号(**) 函数动态参数匹配及解包操作的文章就介绍到这了,更多相关python星号(*)和双星号(**)内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • 详解Python中数据库管理模块shelve和dbm的应用

    详解Python中数据库管理模块shelve和dbm的应用

    作为常用的 python 自带数据库管理模块,shelve 和 dbm 都是非常方便的对象持久化存储和检索工具,本文将从用法、优势以及不同点等方面进行介绍,希望对大家有所帮助
    2023-10-10
  • 浅谈django model postgres的json字段编码问题

    浅谈django model postgres的json字段编码问题

    下面小编就为大家分享一篇浅谈django model postgres的json字段编码问题,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2018-01-01
  • 利用Python绘制好看的玫瑰花图

    利用Python绘制好看的玫瑰花图

    玫瑰花图是节理统计方式之一,方法简便,形象醒目,比较清楚地反映出主要节理的方向,有助于分析区域构造。本文将用Python绘制好看的玫瑰花图,感兴趣的可以了解一下
    2022-05-05
  • Django ORM filter() 的运用详解

    Django ORM filter() 的运用详解

    这篇文章主要介绍了Django ORM filter() 的运用详解,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2020-05-05
  • Python 获取md5值(hashlib)常用方法

    Python 获取md5值(hashlib)常用方法

    这篇文章主要介绍了Python获取md5值(hashlib)常用方法,本文通过实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2023-07-07
  • Python3内置函数chr和ord实现进制转换

    Python3内置函数chr和ord实现进制转换

    这篇文章主要介绍了Python3内置函数chr和ord实现进制转换,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2020-06-06
  • python实现简易计算器功能

    python实现简易计算器功能

    这篇文章主要为大家详细介绍了python实现简易计算器功能,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2022-02-02
  • 实现python namedtuple元类编程

    实现python namedtuple元类编程

    这篇文章主要为大家介绍了实现python namedtuple元类编程,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2023-07-07
  • python基础之//、/与%的区别详解

    python基础之//、/与%的区别详解

    在学习Python或者使用Python进行工作的时候,大家应该都看到过“/”和“//”,下面这篇文章主要给大家介绍了关于python基础之//、/与%区别的相关资料,文中通过实例代码介绍的非常详细,需要的朋友可以参考下
    2022-06-06
  • python使用urlparse分析网址中域名的方法

    python使用urlparse分析网址中域名的方法

    这篇文章主要介绍了python使用urlparse分析网址中域名的方法,涉及Python使用urlparse模块操作URL的技巧,需要的朋友可以参考下
    2015-04-04

最新评论