我想创建一个namedtuple
代表短位域中的各个标志的。我正在尝试对其进行子类化,以便在创建元组之前解压缩位域。但是,我目前的尝试不起作用:
class Status(collections.namedtuple("Status", "started checking start_after_check checked error paused queued loaded")):
__slots__ = ()
def __new__(cls, status):
super(cls).__new__(cls, status & 1, status & 2, status & 4, status & 8, status & 16, status & 32, status & 64, status & 128)
现在,我的经验super()
是有限的,而且我的经验__new__
几乎不存在,所以我不太确定(对我来说)神秘的错误该怎么办TypeError: super.__new__(Status): Status is not a subtype of super
。谷歌搜索和挖掘文档并没有产生任何启发性。
帮助?