gpt4 book ai didi

python - 如何在 Python 中获取当前模块中所有类的列表?

转载 作者:IT老高 更新时间:2023-10-28 12:09:35 25 4
gpt4 key购买 nike

我见过很多人从一个模块中提取所有类的例子,通常是这样的:

# foo.py
class Foo:
pass

# test.py
import inspect
import foo

for name, obj in inspect.getmembers(foo):
if inspect.isclass(obj):
print obj

太棒了。

但我不知道如何从 current 模块中获取所有类。

# foo.py
import inspect

class Foo:
pass

def print_classes():
for name, obj in inspect.getmembers(???): # what do I do here?
if inspect.isclass(obj):
print obj

# test.py
import foo

foo.print_classes()

这可能是非常明显的事情,但我无法找到任何东西。谁能帮帮我?

最佳答案

试试这个:

import sys
current_module = sys.modules[__name__]

在您的上下文中:

import sys, inspect
def print_classes():
for name, obj in inspect.getmembers(sys.modules[__name__]):
if inspect.isclass(obj):
print(obj)

甚至更好:

clsmembers = inspect.getmembers(sys.modules[__name__], inspect.isclass)

因为 inspect.getmembers() 需要一个谓词。

关于python - 如何在 Python 中获取当前模块中所有类的列表?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1796180/

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