首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >Python元类:如何泛化这个助手类?

Python元类:如何泛化这个助手类?
EN

Stack Overflow用户
提问于 2014-03-24 20:48:35
回答 1查看 68关注 0票数 1

我使用PyTables将HDF5数据存储在HDF5文件中,它需要一个助手类来创建一个表。下面是一个示例:

代码语言:javascript
运行
复制
class PacketData(pt.IsDescription):
    data = pt.UInt8Col(shape=(128,))


# later code does this:
self.tdata = self.hfile.createTable(self.g, 'packetdata', PacketData,
                            filters=filters)

是否有一种方法可以在这里使用元类来概括128

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-03-24 20:54:46

我不认为你需要一个超能力的人。事实上,由于元类是固定在定义类的点上的,所以我不认为它为您提供了将形状参数化的机会。

您可以使用一个类工厂来代替:

代码语言:javascript
运行
复制
def packetdata(n):
    class PacketData(pt.IsDescription):
        data = pt.UInt8Col(shape=(n,))
    return PacketData

self.tdata = self.hfile.createTable(self.g, 'packetdata', packetdata(128),
                            filters=filters)
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/22620280

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档