def __new__(cls, class_name, bases, attrs):
new_class = type.__new__(cls, class_name, bases, attrs)
# If new_class has no __delegate_class__, then it's a base like
# MotorClientBase; don't try to update its attrs, we'll use them
# for its subclasses like MotorClient.
if getattr(new_class, '__delegate_class__', None):
for base in reversed(inspect.getmro(new_class)):
# Turn attribute factories into real methods or descriptors.
for name, attr in base.__dict__.items():
if isinstance(attr, MotorAttributeFactory):
new_class_attr = attr.create_attribute(new_class, name)
setattr(new_class, name, new_class_attr)
return new_class
评论列表
文章目录