有些人很疑惑为什么在Python3里有的变量前面有个*号呢?如下图!

Python不可以会无缘无故的出现这种写法,必然有他的用处!
原因分析

元组变量前加 * 视为对元组解包。解包后的子内容会依次赋值给对应位置的其他变量
一个元组解包最经典的用法就是python里的两变量值互换但不借用第三中间变量:、
a, b = b, a
当然这里没有 * ,此外还注意到元素数量较少不会引起歧义时,元组两侧的括号可以省略
回到题图命令里
product(A, B)
相当于返回一个A,B列表中元素依次互相配对的生成器。假设里面有 5 个元组,那么在用 * 解包后就会返回 5 个元素(都是元组)。而print命令恰好是一个可以接受无限多参数的函数(作用就是把这些参数内的内容打印出来),于是你就会看到 5 个元组依次出现在屏幕上了。
扩展一下,如其他答主所说,* 也可以用来解包参数以传递给函数使用。但这其实也是利用了元组的解包特性。
例如如下代码:
def funcA(*args): print(*args)funcA([1,2,3], [4,5,6]) # 返回 [1, 2, 3] [4, 5, 6]
这是因为这里的参数分别是 [1,2,3] 和

本文解析了Python3中变量前的*号含义,它用于元组解包,常用于互换变量、参数传递等场景。例如在`a, b = b, a`中实现值交换,或在函数调用如`print(*product(A, B))`中展开元组。*args和**kwargs则分别用于传递可变长度的非关键字参数和关键字参数。"
108753756,10072594,B2B商城系统功能详解,"['电子商务', '供应链管理', '企业平台', '在线交易', 'B2B订货']
最低0.47元/天 解锁文章
9175

被折叠的 条评论
为什么被折叠?



