栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

从父类获取所有子模型-Django

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

从父类获取所有子模型-Django

您可以使用[Python-
doc]
方法获取
直接 子类:

class.__subclasses__()


>>> Device.__subclasses__()[<class 'Mobile'>, <class 'Computer'>]

但是,这些也可能具有子类。我们可以开发一种算法,每次获得下一代算法,并一直这样做直到找到新的子类为止,例如:

def get_descendants(klass):    gen = { klass }    desc = set()    while gen:        gen = { skls for kls in gen for skls in kls.__subclasses__() }        desc.update(gen)    return desc

或具有可变数量的参数:

def get_descendants(*klass):    gen = { *klass }    desc = set()    while gen:        gen = { skls for kls in gen for skls in kls.__subclasses__() }        desc.update(gen)    return desc

这将返回一个

set()
包含所有后代(直接和间接)的。



转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/646068.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号