본문 바로가기
파이썬

파이썬에서 현재 모듈 내의 모든 클래스 목록을 어떻게 얻을 수 있습니까?

by º기록 2021. 1. 11.
반응형

모듈에서 모든 클래스를 추출하는 사람들의 많은 예를 보았습니다. 일반적으로 다음과 같습니다.

# 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 () 는 술어를 취하기 때문입니다.

 

참조 페이지 https://stackoverflow.com/questions/1796180

 

 

반응형

댓글