metaclass

    2熱度

    4回答

    比方說,我們已經有了一個元類CallableWrappingMeta該走了一類新的身體,包裹它的方法與一類,InstanceMethodWrapper: import types class CallableWrappingMeta(type): def __new__(mcls, name, bases, cls_dict): for k, v in cls_dict.

    14熱度

    5回答

    我最近在python中發現了metaclasses。 基本上在python元類是創建一個類的類。有很多有用的理由你爲什麼要這麼做 - 例如任何類的初始化。在工廠註冊類,對屬性進行復雜的驗證,改變繼承的工作方式等等。所有這些都變得不僅可能而且簡單。 但是在Python中,元類也是普通類。於是,我開始想,如果抽象可以有效走得更高,而且在我看來,它可以和: 元類對應於或實現某種模式中的角色(如GOF模式

    0熱度

    2回答

    我在Python中有一些代碼,我將有一堆類,每個類都有一個屬性_internal_attribute。我希望能夠生成這些屬性到原始類的映射。基本上我希望能夠做到這一點: class A(object): _internal_attribute = 'A attribute' class B(object): _internal_attribute = 'B attribute

    9熱度

    1回答

    這是一個python會話。 >>> class Z(type): def __new__(cls, name, bases, attrs): print cls print name return type(name, bases, attrs) ... >>> class Y(object): __metaclass__ = Z .

    0熱度

    1回答

    我對Groovy和Grails比較陌生,在業餘時間嘗試使用它們。我有一個小測試Grails應用程序,我可以使用grails run-app正常運行,但是grails run-war導致錯誤。 在grails-app/conf/BootStrip.init方法,我添加了一些屬性獲取到DefaultGrailsControllerClass和DefaultGrailsApplication: Defa

    6熱度

    3回答

    我想使用繼承模型的Meta類中的屬性來配置在繼承樹上的抽象模型中定義的字段: class NamedModel(models.Model): class Meta: abstract = True verbose_name = 'object' name = models.CharField("Name", max_length=200,

    12熱度

    1回答

    這是我想要做的一個人爲的例子,但最低限度表達了所需的行爲。我想引用屬性訪問被調用的對象的實例。我首先嚐試了'this',但是它引用了封閉類,而不是MetaClass或String實例。 String.metaClass.propertyMissing = { String name -> 'I do not exist, but my name is ' + <the String in

    0熱度

    1回答

    一類從Snipplr 確定這裏是腳本代碼,在註釋中的問題,並拋出 class Class1 { def closure = { println this.class.name println delegate.class.name def nestedClos = { println owner.class.name }

    2熱度

    6回答

    我一直在閱讀一些關於元類的內容,但我想知道它們是否可以在C++中實現。 我知道Qt庫正在使用MetaObjects,但它使用C++的擴展來實現它。我想知道它是否可以直接在C++中使用。 謝謝。

    7熱度

    2回答

    我很難理解classmethod對象在Python中的工作方式,特別是在metaclass和__new__中。在我的特殊情況下,我想獲得一個classmethod成員的名字,當我遍歷__new__給出的members。 對於常規方法,名稱只存儲在__name__屬性中,但對於類方法,顯然沒有這樣的屬性。我什至不知道如何調用類方法,因爲也沒有__call__屬性。 有人可以向我解釋一個classme