나는 다음과 같은 폴더 구조가 : 내 경우, 기본 클래스에서 확장하는 클래스가 모듈 (예를 들어 some_module1.py)의 각 내부파이썬 - 동적 클래스 가져 오기
- MyProject
- App1
- some_module1.py
- some_module2.py
- App2
- some_other_module1.py
- some_other_module2.py
을, 프로듀서 .
내가하려고하는 일은이 클래스에서 동적으로로드하는 것입니다. 나는 특정 생산자 클래스에 대한 각각의 "응용 프로그램"패키지를 확인하고이에서 확장 확인하는 함수를 작성하는 것을 시도하고있다
INSTALLED_APPS = (
'App1',
'App2',
)
을 :이를 위해, 나는 다음과 같습니다 "설치된 앱"의 목록을 가지고 생산자 기본 클래스. 다음과 같은 것 :
module_class = 'some_module1.SomeClass'
# Loop through each package in the INSTALLED_APPS tuple:
for app in INSTALL_APPS:
try:
#is the module_class found in this app?
#App1.some_module1.SomeClass - Yes
#App2.some_module1.SomeClass - No
# is the class we found a subclass of Producer?
exception ImportError:
pass
나는 imp와 importlib를 시도했지만이 종류의 가져 오기를 처리하지 못했습니다. 어쨌든 내가이 일을 성취 할 수 있을까?
죄송합니다 - 원하는 것을 알아낼 수 없으므로 의사 코드가 명확하지 않습니다. 파이썬은 적절한 장소에서 나오는 abse 클래스를 처리합니다. 그래서 App1.Class_는 App1 모듈 안에 정의 된 "Producer"를 볼 것입니다. – jsbueno
죄송합니다. 가능한 한 명확하게하려고 노력했습니다. 나는 포스트에 편집하고 그것이 더 의미가 있기를 바란다. – Hanpan