沒有子類字典,什么類需要被認為是映射,以便可以將其傳遞給帶有**的方法from abc import ABCMetaclass uobj: __metaclass__ = ABCMetauobj.register(dict)def f(**k): return ko = uobj()f(**o)# outputs: f() argument after ** must be a mapping, not uobj至少會引發(fā)缺少映射功能的錯誤,因此我可以開始實施。我回顧了模擬容器類型的過程,但是簡單地定義魔術(shù)方法無效,并且使用ABCMeta覆蓋它并將其注冊為dict可以將斷言驗證為子類,但是使isinstance(o,dict)失敗。理想情況下,我什至不想使用ABCMeta。
充當**拆包映射的python類
慕運維8079593
2019-10-29 10:53:45