本文作者:云初冀北

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

python星号(*)和双星号(**) 函数动态参数匹配及解包操作方法摘要: 1.乘法和幂运算符● 单个 * 用于乘法运算● 两个 ** 表示幂运算˃˃˃ 2*3˃˃˃ 6˃˃˃ 2**3˃˃˃ 82.函数接收数量不固定的入参在定义函数时,我们可以定义一个以...

?=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星号(*)和双星号(**)内容请搜索云初冀北以前的文章或继续浏览下面的相关文章希望大家以后多多支持云初冀北!

免责声明
本站提供的资源,都来自网络,版权争议与本站无关,所有内容及软件的文章仅限用于学习和研究目的。不得将上述内容用于商业或者非法用途,否则,一切后果请用户自负,我们不保证内容的长久可用性,通过使用本站内容随之而来的风险与本站无关,您必须在下载后的24个小时之内,从您的电脑/手机中彻底删除上述内容。如果您喜欢该程序,请支持正版软件,购买注册,得到更好的正版服务。侵删请致信E-mail:Goliszhou@gmail.com
$

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

微信扫一扫打赏

阅读
分享

发表评论

快捷回复:

评论列表 (暂无评论,59人围观)参与讨论

还没有评论,来说两句吧...