8得票2回答
Python - 类属性似乎不被继承

在最近的项目中,我试着做类似于这样的事情(更为复杂,但结果相同): class MetaA(type): def __new__(cls, name, args, kwargs): print kwargs["foo"] return type.__n...

9得票1回答
当覆盖构造函数中调用的方法时,Groovy元类失效?

我刚试着编写了这段简单的代码,用于测试使用metaClass覆盖方法。 代码如下: class Hello { public Hello() { Foo() } public void Foo() { prin...

88得票6回答
解决元类冲突

我需要创建一个类,根据某些条件使用不同的基类。对于某些类,我得到了臭名昭著的:TypeError: metaclass conflict: the metaclass of a derived class must be a (non-strict) subclass of the metac...

22得票6回答
Python中type和type.__new__有什么区别?

我正在编写一个元类,无意中却这样做了:class MetaCls(type): def __new__(cls, name, bases, dict): return type(name, bases, dict) ...而不是像这样:class MetaCls(typ...

34得票1回答
Python 3中的__metaclass__

在Python2.7中,这段代码可以很好地工作,MetaTable 中的 __getattr__ 函数会被执行。但是在Python 3中,它无法正常工作。class MetaTable(type): def __getattr__(cls, key): temp = k...

10得票3回答
使用元类实现工厂设计模式

我在metaclass上找到了很多链接,其中大部分提到它们用于实现工厂方法。你能否给我展示一个使用metaclass实现设计模式的例子?

60得票4回答
如何在Python 2.7和Python 3.5兼容的情况下使用abc.ABCMeta?

我想创建一个类,它的元类是abc.ABCMeta,并且可以同时兼容Python 2.7和Python 3.5。到目前为止,我只能在2.7或3.5上成功创建,但从未在两个版本上同时成功。有人可以帮我吗? Python 2.7: import abc class SomeAbstractCla...

17得票5回答
有人在Python/其他语言中使用元元类/元元元类吗?

我最近在python中发现了元类。 基本上,python中的元类是创建类的类。有许多有用的原因为什么你会想这样做 - 例如任何类型的类初始化。在工厂中注册类、属性复杂验证,更改继承如何工作等。所有这些不仅变得可能,而且简单。 但是在python中,元类也是普通的类。所以,我开始思考抽象是否...

9得票2回答
Python3中的类型子类化与对象子类化

我一直在阅读关于元类的内容,但当涉及到type和object类时,我就迷失了。 我知道它们处于层次结构的顶部,并且它们是用C代码实现的。我也明白type继承自object,并且object是type的一个实例。 在SO上我找到了答案之一,其中有人提到关于object-type关系的问题: ...

62得票2回答
Python元类:理解'with_metaclass()'

我想问在类的定义中,with_metaclass()调用的含义是什么。 例如:class Foo(with_metaclass(Cls1, Cls2)): 一个类从元类继承是一种特殊情况吗? 新的类也是元类吗?