Python学习 - NamedTuple

NamedTuple, 中文名称为 具名元组, 使用此函数可以创建一个可读性更强的元组

在使用普通元组的时候,我们只能通过index来访问元组中的某个数据, 使用NamedTuple的时候, 可以采用这两种方式进行访问:1. 通过索引index访问; 2. 通过.xx属性访问

创建NamedTuple类, 用来构建NamedTuple的实例对象, 有以下两种方法

方法1: 直接调用NamedTuple

from torch import Tensor
from typing import NamedTuple

QTensor = NamedTuple('QTensor', ['data', 'scale', 'dtype'])
# 指定对应元素的数据类型
# python version >= 3.6
QTensor = NamedTuple('QTensor', data=Tensor, scale=Tensor, dtype=str)
# python version <= 3.5
QTensor = NamedTuple('QTensor', [('data', Tensor), ('scale', Tensor), ('id', str)])

# 创建实例, 访问元素
temp_qtensor = QTensor(1, 2, 'int')
temp_qtensor[0] == temp_qtensor.data == 1

方法2: 派生类(推荐)

from torch import Tensor
from typing import NamedTuple

class QTensor(NamedTuple):
    data: Tensor
    scale: Tensor
    dtype: str

    # 可以定义一些扩展函数或者访问属性等
    @property
    def shape(self):
        return self.data.shape

temp_qtensor = QTensor(1, 2, 'int')
temp_qtensor[0] == temp_qtensor.data == 1
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值