在Python3里有的变量前面有个*号,或许你不知道,没关系,看文

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

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

在Python3里有的变量前面有个*号,或许你不知道,没关系,看文

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

原因分析

在Python3里有的变量前面有个*号,或许你不知道,没关系,看文

元组变量前加 * 视为对元组解包。解包后的子内容会依次赋值给对应位置的其他变量

一个元组解包最经典的用法就是python里的两变量值互换但不借用第三中间变量:、

a, b = b, a

当然这里没有 * ,此外还注意到元素数量较少不会引起歧义时,元组两侧的括号可以省略

回到题图命令里

product(A, B)

相当于返回一个A,B列表中元素依次互相配对的生成器。假设里面有 5 个元组,那么在用 * 解包后就会返回 5 个元素(都是元组)。而print命令恰好是一个可以接受无限多参数的函数(作用就是把这些参数内的内容打印出来),于是你就会看到 5 个元组依次出现在屏幕上了。

扩展一下,如其他答主所说,* 也可以用来解包参数以传递

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值