metaclass

    0熱度

    1回答

    Python 3.6增加了PEP 487,其中增加了__init_subclass__方法。是否有可能編寫不使用元類的ABC版本?

    0熱度

    1回答

    我是新來的python以及Django和學習序列化。我觀察到,在定義序列化器類時,它需要一個嵌套的元類。我對這個元類概念不太熟悉,所以我對它進行了搜索,發現元類是一個類,其實例是類。即使在閱讀後,我感到困惑。外部序列化程序類是內部元類的實例嗎?在這裏使用這個元類有什麼需要?

    23熱度

    4回答

    我終於升級我的Python版本,我發現新功能的加入。除此之外,我正在摸索新的__init_subclass__方法。從文檔: 只要包含的類是子類,就會調用此方法。然後cls 是新的子類。如果被定義爲一個正常的實例方法,該 方法隱式轉換爲一個類的方法。 於是我開始玩弄它一點點,下面的文檔的例子: class Philosopher: def __init_subclass__(cls, d

    0熱度

    1回答

    我目前正在實施開槽元類使用type(): type(i,(), {'__slots__': tuple(data) 我當然會非常有槽保持,因爲我有一個會從他們的更小的內存佔用和提高訪問速度受益的用例。 當我這樣做:但是當我運行 dir(slotted_class) >>>['__class__', '__delattr__', '__dir__', '__doc__', '__eq_

    0熱度

    1回答

    我想爲我的graphene.ObjectType子類創建一個meta類。我的主要目標是從包含其名稱的字符串列表中創建類的屬性(即Graphene對象的字段)。 例如,​​ 對於這份名單,我的課Attack必備的東西是這樣的: class Attack(graphene.ObjectType): quantity = graphene.String() position = gr

    0熱度

    1回答

    我想修改Groovy中的JSONObject的元類,使其像常規Groovy地圖一樣儘可能地表現。當我在元類中實現方法時,在下面的例子中,其中的一些就像JSONObject.metaClass.size一樣簡單。 JSONObject有一個length()方法,我只是將它連接到一個新的size()方法,但有些方法有特殊的含義。例如,要讓下標分配生效,我必須重寫propertyMissing,而不是p

    5熱度

    1回答

    我想創建一個只創建一個實例的類,如果在實例化過程中傳入的參數是唯一的組合。如果先前傳入了參數組合,則返回先前已創建的實例。 我想讓這個類被其他類繼承,所以它們繼承了相同的行爲。這是我的一個解決方案,第一次嘗試, 基/父類被繼承: class RegistryType(type): def __init__(cls, name, bases, namespace, *args):

    3熱度

    2回答

    從我的理解類內部__call__方法瞭解__call__實現函數調用操作符,例如: class Foo: def __init__(self): print("I'm inside the __init__ method") def __call__(self): print("I'm inside the __call__ method") x

    1熱度

    2回答

    添加說法我碰到這種設計模式跑在Python想,如果有人可以解釋,因爲我從來沒有 def func(): pass class Child(Parent, f=func): pass 不知道這裏發生了什麼之前見過它。如果父類具有元類定義,它可以在其中更改類構造函數以允許傳遞參數?任何幫助表示讚賞和抱歉的模糊

    -1熱度

    1回答

    向元類添加一個方法在下面的例子中可以很好地工作。 class Test(object): def __init__(self, x): self.x = x def double(self): return self.x*2 # method to add def quadruple(self): return self.x*4