7
동적으로 가져온 하위 패키지의 모듈이 있습니다. 어떻게 포함 된 클래스를 반복 할 수 있습니까?동적으로 가져온 모듈에 정의 된 클래스를 반복하십시오.
나는 모듈을 가져 와서이 같은 이름이 나열되었습니다
package = current_module.__name__
package = package[:package.rindex(".")] # get the package
package = "%s.sub.%s"%(package,name) # make the name of the child
print "(loading package %s)"%package
module = __import__(package) # this succeeds
for name,obj in inspect.getmembers(module):
print name,type(obj)
이 유일한 인쇄 모듈의 속성이 아닌 모듈을 정의하는 클래스 유형 :
__builtins__ <type 'dict'>
__doc__ <type 'NoneType'>
__file__ <type 'str'>
__name__ <type 'str'>
__package__ <type 'NoneType'>
__path__ <type 'list'>
imported_package <type 'module'>
UPDATE를
내 수업은에없는 것 같습니다.fromlist
이 비어 있지 않으면! from-list의 값은 유효성이 검증 된 것 같지 않습니다. [""]
잘 작동하는 것, 그리고 갑자기 클래스가 나타납니다!
이유가 누구인지 설명 할 수 있습니까? 클래스 이름을 매핑하는 딕셔너리를 만들 :
(표준 우분투 파이썬 2.7.1+ (R271 : 86,832)
가져 오기에 fromlist 절이 없으면 작동하지 않습니다. 질문이 업데이트되었습니다 . – Will
오, 사소한 점은 try 블록에서 issubclass를 바꾸는 것입니까? – Will
(처음) 당신은 fromlist에 대해 옳았습니다. 저는 보통 [ 그 이유는 무엇인지 모르겠다. (둘째) 아니. , 나는'isinstance'를 의미 했지'issubclass'가 아니라'try'가 없었다. 각 클래스는 'type'유형의 객체이기도합니다. – pvoosten