파이썬으로 디렉토리에있는 모든 클래스의 인스턴스를 어떻게 동적으로 생성합니까?

잠금 해제

나는 다음과 같은 것을 시도하고 있습니다.

from A.AA import Q, W
from A.AB import E
from A.B.ABA import R
from A.B.ABB import T, Y, U

objs = []
objs.append(Q())
objs.append(W())
objs.append(E())
objs.append(R())
objs.append(T())
# and so on...

위의 코드는 매우 커서 새 클래스 나 모듈을 추가 할 때마다 업데이트하는 데 불필요한 시간이 많이 걸립니다. 대신 디렉토리 내의 각 클래스와 모든 중첩 된 디렉토리에서 객체를 동적으로 초기화하는 방법을 원합니다. 다음으로 요약되는 것.

objs = []
for py_file in directory:
    for class in py_file:
        objs.append(construct_object_of_type(class))

참고로 이러한 모든 클래스는 단일 기본 클래스에서 상속됩니다. 이 코드는 최상위 디렉토리의 python 파일에서도 호출됩니다.

잠금 해제

그래서 나는 이것을하는 방법을 알아 냈다.

이에 대한 코드는 다음과 같습니다.

import os
import imp
import inspect

obj_list = []

dir_path = os.path.dirname(os.path.realpath(__file__))
pattern = "*.py"

for path, subdirs, files in os.walk(dir_path):
    for name in files:
        if fnmatch(name, pattern):
            found_module = imp.find_module(name[:-3], [path])
            module = imp.load_module(name, found_module[0], found_module[1], found_module[2])
            for mem_name, obj in inspect.getmembers(module):
                if inspect.isclass(obj) and inspect.getmodule(obj) is module:
                    obj_list.append(obj())

이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.

침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제

에서 수정
0

몇 마디 만하겠습니다

0리뷰
로그인참여 후 검토

관련 기사

분류에서Dev

Bash의 모든 기존 디렉토리에 Textures 디렉토리를 재귀 적으로 생성 한 다음 삭제하려면 어떻게해야합니까?

분류에서Dev

루프에있는 동안 디렉토리의 모든 파일 크기를 어떻게 확인합니까?

분류에서Dev

내 미디어 위키 이미지 디렉토리에있는 모든 PNG를 자동으로 최적화하는 스크립트를 어떻게 작성합니까?

분류에서Dev

부모 클래스의 요소를 JAXB 주석이있는 파생 클래스의 속성으로 어떻게 변경합니까?

분류에서Dev

같은 클래스의 클래스 이름으로 모든 요소를 어떻게 얻을 수 있습니까?

분류에서Dev

모든 디렉토리를 동일한 폴더의 단일 디렉토리로 효율적으로 이동하려면 어떻게합니까?

분류에서Dev

어떻게 목록 파일에 대한 디렉토리에있는 웹 모듈의 클래스 경로 내부

분류에서Dev

기존 클래스의 속성으로 새 클래스를 만들 때 파이썬은 어떻게 속성을 인스턴스화합니까?

분류에서Dev

프로그램 시작시 클래스의 인스턴스를 자동으로 암시 적으로 생성하려면 어떻게해야합니까?

분류에서Dev

Python의 하위 디렉토리 아래에있는 모든 모듈을 어떻게로드합니까?

분류에서Dev

구체적으로 find 명령과 wc 명령을 사용하여 디렉토리와 모든 하위 디렉토리에있는 모든 .txt 파일의 수를 어떻게 찾습니까?

분류에서Dev

Android는 Activity 클래스의 인스턴스를 생성합니까? 아니면 어떻게 작동합니까?

분류에서Dev

파이썬에서 클래스의 인스턴스를 어떻게 인스턴스화합니까?

분류에서Dev

TreeMap 내에서 현재 클래스의 인스턴스를 값으로 어떻게 반환합니까?

분류에서Dev

모든 클래스 인스턴스를 동시에 참조하려면 어떻게합니까?

분류에서Dev

디렉토리의 모든 파일에서 파이썬 스크립트를 어떻게 실행합니까?

분류에서Dev

디렉토리에있는 모든 파일의 MD5 합계를 계산하는 Perl 스크립트를 어떻게 작성할 수 있습니까?

분류에서Dev

파이썬에서 클래스의 모든 함수가 액세스 할 수있는 변수를 어떻게 생성합니까?

분류에서Dev

사람이 읽을 수있는 형식으로 디렉터리에있는 모든 파일의 줄 수를 어떻게 나열합니까?

분류에서Dev

C ++의 자식 클래스에서 부모 오버로드 생성자를 어떻게 호출합니까?

분류에서Dev

Google Closure에서 var_args로 부모의 클래스 생성자를 어떻게 호출합니까?

분류에서Dev

디렉토리의 모든 하위 폴더를 재귀 적으로 압축하려면 어떻게합니까?

분류에서Dev

디렉토리의 모든 하위 폴더를 재귀 적으로 압축하려면 어떻게합니까?

분류에서Dev

C 디렉토리에있는 모든 파일의 값을 어떻게 인쇄합니까?

분류에서Dev

C 디렉토리에있는 모든 파일의 값을 어떻게 인쇄합니까?

분류에서Dev

현재 디렉토리를 포함하여 현재 디렉토리 아래에 여러 이름의 파일이있는 모든 파일, 빈 디렉토리 및 디렉토리를 재귀 적으로 삭제합니다.

분류에서Dev

작은 케이스 클래스의 모든 속성을 사용하여 Scala 케이스 클래스를 어떻게 인스턴스화합니까?

분류에서Dev

디렉토리 (및 하위 디렉토리)에있는 모든 파일의 총 단어 수를 어떻게 계산합니까?

분류에서Dev

C ++에서 파일에서 클래스의 여러 객체를 동적으로 생성하려면 어떻게해야합니까?

Related 관련 기사

  1. 1

    Bash의 모든 기존 디렉토리에 Textures 디렉토리를 재귀 적으로 생성 한 다음 삭제하려면 어떻게해야합니까?

  2. 2

    루프에있는 동안 디렉토리의 모든 파일 크기를 어떻게 확인합니까?

  3. 3

    내 미디어 위키 이미지 디렉토리에있는 모든 PNG를 자동으로 최적화하는 스크립트를 어떻게 작성합니까?

  4. 4

    부모 클래스의 요소를 JAXB 주석이있는 파생 클래스의 속성으로 어떻게 변경합니까?

  5. 5

    같은 클래스의 클래스 이름으로 모든 요소를 어떻게 얻을 수 있습니까?

  6. 6

    모든 디렉토리를 동일한 폴더의 단일 디렉토리로 효율적으로 이동하려면 어떻게합니까?

  7. 7

    어떻게 목록 파일에 대한 디렉토리에있는 웹 모듈의 클래스 경로 내부

  8. 8

    기존 클래스의 속성으로 새 클래스를 만들 때 파이썬은 어떻게 속성을 인스턴스화합니까?

  9. 9

    프로그램 시작시 클래스의 인스턴스를 자동으로 암시 적으로 생성하려면 어떻게해야합니까?

  10. 10

    Python의 하위 디렉토리 아래에있는 모든 모듈을 어떻게로드합니까?

  11. 11

    구체적으로 find 명령과 wc 명령을 사용하여 디렉토리와 모든 하위 디렉토리에있는 모든 .txt 파일의 수를 어떻게 찾습니까?

  12. 12

    Android는 Activity 클래스의 인스턴스를 생성합니까? 아니면 어떻게 작동합니까?

  13. 13

    파이썬에서 클래스의 인스턴스를 어떻게 인스턴스화합니까?

  14. 14

    TreeMap 내에서 현재 클래스의 인스턴스를 값으로 어떻게 반환합니까?

  15. 15

    모든 클래스 인스턴스를 동시에 참조하려면 어떻게합니까?

  16. 16

    디렉토리의 모든 파일에서 파이썬 스크립트를 어떻게 실행합니까?

  17. 17

    디렉토리에있는 모든 파일의 MD5 합계를 계산하는 Perl 스크립트를 어떻게 작성할 수 있습니까?

  18. 18

    파이썬에서 클래스의 모든 함수가 액세스 할 수있는 변수를 어떻게 생성합니까?

  19. 19

    사람이 읽을 수있는 형식으로 디렉터리에있는 모든 파일의 줄 수를 어떻게 나열합니까?

  20. 20

    C ++의 자식 클래스에서 부모 오버로드 생성자를 어떻게 호출합니까?

  21. 21

    Google Closure에서 var_args로 부모의 클래스 생성자를 어떻게 호출합니까?

  22. 22

    디렉토리의 모든 하위 폴더를 재귀 적으로 압축하려면 어떻게합니까?

  23. 23

    디렉토리의 모든 하위 폴더를 재귀 적으로 압축하려면 어떻게합니까?

  24. 24

    C 디렉토리에있는 모든 파일의 값을 어떻게 인쇄합니까?

  25. 25

    C 디렉토리에있는 모든 파일의 값을 어떻게 인쇄합니까?

  26. 26

    현재 디렉토리를 포함하여 현재 디렉토리 아래에 여러 이름의 파일이있는 모든 파일, 빈 디렉토리 및 디렉토리를 재귀 적으로 삭제합니다.

  27. 27

    작은 케이스 클래스의 모든 속성을 사용하여 Scala 케이스 클래스를 어떻게 인스턴스화합니까?

  28. 28

    디렉토리 (및 하위 디렉토리)에있는 모든 파일의 총 단어 수를 어떻게 계산합니까?

  29. 29

    C ++에서 파일에서 클래스의 여러 객체를 동적으로 생성하려면 어떻게해야합니까?

뜨겁다태그

보관