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
。グーグルでドキュメントを掘り下げても、啓蒙的なものは何も得られていません。
ヘルプ?