我已經看到了很多人從一個模塊中提取所有類的示例,通常是這樣的:# foo.pyclass Foo: pass# test.pyimport inspectimport foofor name, obj in inspect.getmembers(foo): if inspect.isclass(obj): print obj太棒了但是我無法找到如何從當前模塊中獲取所有類。# foo.pyimport inspectclass Foo: passdef print_classes(): for name, obj in inspect.getmembers(???): # what do I do here? if inspect.isclass(obj): print obj# test.pyimport foofoo.print_classes()這可能確實很明顯,但是我什么也找不到。誰能幫我嗎?
3 回答

慕桂英3389331
TA貢獻2036條經驗 獲得超8個贊
嘗試這個:
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()帶謂語。
添加回答
舉報
0/150
提交
取消