我想創建一個namedtuple
,它代表一個短的位域中的各個標誌。我試圖對它進行子類化,以便在創建元組之前解壓位域。但是,我現在的嘗試是不工作:通過子類修改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
。谷歌搜索和挖掘文檔沒有產生任何啓發。
幫助?
應該是'超級(狀態,CLS)'! – knite 2014-10-03 22:21:53