Я хочу создать 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
. Поиск в Google и поиск в документах не дали ничего поучительного.
Справка