Discuss / Python / 第二个注释看不懂了,剩下的以自己理解标注了都

第二个注释看不懂了,剩下的以自己理解标注了都

Topic source

H桃J_wczjzl

#1 Created at ... [Delete] [Delete and Lock User]
class ModelMetaclass(type):
    def __new__(cls, name,bases,attrs):# metaclass 的固定写法
        if name == 'Model': # 这句话没看懂
            return type.__new__(cls,name,bases,attrs)
        print('Found model: %s' % name) # 打印状态,接收到一个model
        mappings = dict() # 创建一个字典 命名为 mappings (映射)
        for k,v in attrs.items(): # iter attrs 里面是类的方法和属性?到底是方法还是属性?
            if isinstance(v,Field):# 判断 value 如果是 Field 那么
                print('Found mapping: %s ==> %s' % (k,v))
                mappings[k]=v # 在mappings 里建立键值对(写入字典 mappings)
        for k in mappings.keys(): # 遍历 mappings 字典的全部 key
            attrs.pop(k) # 从attrs里删除遍历到的 key->value(相关数据)
        attrs['__mappings__'] = mappings # 添加?替换?字典元素: __mappings__ -> mappings
        attrs['__table__'] = name # 同上
        return type.__new__(cls,name,bases,attrs)

  • 1

Reply