gpt4 book ai didi

python - 获取文件中所有用户定义的类

转载 作者:太空宇宙 更新时间:2023-11-04 01:04:58 25 4
gpt4 key购买 nike

如果我有一个文件,比如 first.py,它看起来像这样 -

class Person(object):
pass

class Dog(object):
pass

我还有第二个文件,second.py。如何在 second.py 中获取在 first.py 中定义的所有类?

也许我应该提到,我尝试实现的用例类似于在 Django 中初始化模型时发生的用例 - 当我运行 manage.py sql myapp 命令时,我假设 Django 遍历 models.py 中的所有模型并为它们生成 SQL 查询。

所以我尝试做的事情类似于 Django 在获取 models.py 中定义的所有模型时所做的事情。

如何从文件中获取所有用户定义的类? (除非有更聪明的方法来做 Django 所做的事情)

提前致谢!

最佳答案

如果你有一个文件 first.py,在 second.py 中,你必须编写以下代码来返回 first.py 中所有用户定义的类:

import first
from types import *
userDefinedClasses = [i for i in dir(first) if type(getattr(first, i)) is TypeType]

在您的简单示例中,预定义 first.py, dir(first) 将返回列表 ['Dog', 'Person', '__builtins__', '__doc__', '__file__', '__name__' , '__package__']。要修剪它,您必须使用上面压缩的 for 循环来检查 first 目录中每个对象的类型。

这将首先返回类型为“type”的所有对象,这实际上是所有用户定义的类。

关于python - 获取文件中所有用户定义的类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30833052/

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