gpt4 book ai didi

Python - 遍历所有类

转载 作者:行者123 更新时间:2023-11-28 19:51:59 26 4
gpt4 key购买 nike

如何遍历加载到内存中的所有类的列表?我正在考虑做一个备份,寻找所有继承自 db.Model (Google App Engine) 的类。

谢谢,尼尔沃尔特斯

最佳答案

在“普通”Python 中,您可以通过gc 标准库模块的gc.getobjects() 函数访问所有对象;然后很容易在它们上循环,检查哪个是类(而不是实例或其他任何东西——我相信你的意思是类的实例,但如果这真的是你想要的)等。

不幸的是,App Engine 中的 gc 模块没有实现 getobjects —— 这使得访问所有类变得极其困难。例如,通过调用创建的类:

def makeaclass():
class sic(object): pass
return sic

并且隐藏在某处的列表中,很难到达。

但幸运的是,由于您在问题的文本中说您只关心 db.Model 的子类,这比 gc 允许的更容易:

for amodel in db.Model.__subclasses__():
...

只需确保您明确忽略您不关心的类,例如 Expando;-)。

请注意,这确实只为您提供了类,不是实例——如果那些是您真正想要的,则没有类似的简单快捷方式!

关于Python - 遍历所有类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1436384/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com