28得票1回答
SQLAlchemy中的动态类创建

我们需要创建SQLAlchemy类来访问多个外部数据源,这些数据源数量将随时间增加。我们在核心ORM模型中使用声明性基础,并且我知道我们可以使用autoload=True手动指定新的ORM类以自动生成映射。 问题是我们需要能够动态生成它们,像这样:from sqlalchemy.ext.de...

25得票2回答
如何向元类实例添加属性?

我希望定义一个元类,使我能够基于类的属性在新类中创建属性(例如setter、getter)。 例如,我想要定义以下类:class Person(metaclass=MetaReadOnly): name = "Ketty" age = 22 def __str__(...

25得票4回答
为什么namedtuple模块不使用元类来创建nt类对象?

几周前,我花了些时间研究了collections.namedtuple模块。该模块使用一个工厂函数,将动态数据(新的namedtuple类的名称和类属性名称)填充到一个非常大的字符串中。然后使用exec执行该字符串(表示代码的参数),并返回新的类。 有没有人知道为什么这样做,当有一个特定的工具...

25得票1回答
虚拟子类的用途是什么?

class AnimalMeta(type): def __instancecheck__(cls, instance): return cls.__subclasscheck__(type(instance)) def __subclasscheck__(c...

25得票1回答
元类的继承

在这篇广为人知的Python元类相关的答案中,提到了__metaclass__属性不会被继承。 但事实上,我在Python中尝试过:class Meta1(type): def __new__(cls, clsname, bases, dct): print "Usi...

25得票1回答
如何确定一个类的元类?

我有一个类对象,cls。我想知道它的元类是什么。我应该怎么做? (如果我想知道它的父类,我会使用 cls.__mro__。是否有类似的方法可以获取元类?)

25得票1回答
Objective-C中的类是对象吗?

好的,我知道对象是必须被分配和初始化的类的实例,但是类本身是否也是对象呢? 我知道当你创建一个新的类时,它是另一个东西的实例,比如NSObject。那么,如果这使它成为一个类,那么对象不仅可以持有变量和方法,而且还可以持有其他对象,对吗? 抱歉,可能这很基础,但我正在阅读两本关于Cocoa...

24得票3回答
如何在Python中创建自己的“参数化”类型(例如`Optional[T]`)?

我想在Python中创建自己的参数化类型,以便在类型提示中使用: class MaybeWrapped: # magic goes here T = TypeVar('T') assert MaybeWrapped[T] == Union[T, Tuple[T]] 忽略那个刻...

22得票5回答
类定义后是否有设置元类的方法?

为了设置类的元类,我们使用 __metaclass__ 属性。元类在类定义时使用,因此在类定义之后显式设置它将无效。 以下是当我尝试显式设置元类时发生的情况;>>> class MetaClass(type): def __new__(cls, name, base...

22得票4回答
一个类继承了两个不同的元类(abcmeta和用户定义的元类)。

我有一个类class1,需要继承两个不同的元类Meta1和abc.ABCMeta。 当前实现: Meta1的实现:class Meta1(type): def __new__(cls, classname, parent, attr): new_class = ty...