• 字典遍历


        def __new__(mcs, name, bases, attrs):
            # Collect fields from current class.
            current_fields = []
            for key, value in list(attrs.items()):
                if isinstance(value, Field):
                    current_fields.append((key, value))
                    attrs.pop(key)
            current_fields.sort(key=lambda x: x[1].creation_counter)
            attrs['declared_fields'] = OrderedDict(current_fields)
    
            new_class = super(DeclarativeFieldsMetaclass, mcs).__new__(mcs, name, bases, attrs)
    
            # Walk through the MRO.
            declared_fields = OrderedDict()
            for base in reversed(new_class.__mro__):
                # Collect fields from base class.
                if hasattr(base, 'declared_fields'):
                    declared_fields.update(base.declared_fields)
    
                # Field shadowing.
                for attr, value in base.__dict__.items():
                    if value is None and attr in declared_fields:
                        declared_fields.pop(attr)
    
            new_class.base_fields = declared_fields
            new_class.declared_fields = declared_fields
            return new_class
    

      

  • 相关阅读:
    单例模式
    js事件
    oracle_to_excel
    jquery_2
    jquery_1
    4.linux 复制,删除,重命名
    一个tomcat下部署多个springboot项目
    3.centos7 安装oracle
    桥接模式
    组合模式
  • 原文地址:https://www.cnblogs.com/Fmaj7/p/13111930.html
Copyright © 2020-2023  润新知