python中星号(*)和双星号(**)的解包和打包作用、python函数返回多个值是元祖

前言

关于星号的探索来源于在很多的代码学习中,
函数简写中,使用了如下的格式

函数体(*被调用的函数名())

这是因为在python中函数的返回是元组,才用星号解包。

星号作用

星号在python中分为单星号和双星号:分别可以用在计算打包、解包以及传递这三个方面。

1. 计算

一个 * :代表乘法
两个 **: 代表乘幂

2. 打包和解包

星号(*)是给元祖(tuple)解包的,而两个星号是给字典解包的。
ps: python中函数的返回都是元组。
例子如下:

def return_tu(x):
    y = [x+1]    
    return x, y
print(return_tu(3))

# outputs
(3, [4]) # 所以是元组的输出

因此星号的作用就在这里有用武之地了。例子如下

# preprocess_data是数据预处理,返回值有features和labels
# TensorDataset是torch.utils.data的一个数据包
Data.TensorDataset(*preprocess_data(train_data, vocab))

同样双星号也是这样,只不过针对字典对象而已。

3.传参

传参就是在第二点上的扩展用法,因为可以解元组对象,所以通常会这个*args形式出现在大家眼里。

 def foo(*args):
     return ...

def foo(**args):
	return...
  • 5
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值