파이썬 모듈의 모든 클래스를 이름이없는 객체의 목록으로 초기화하는 방법이 있습니까?모듈의 모든 클래스를 목록의 이름이없는 객체로 초기화하십시오.
예 나는 클래스 규칙에서 모든 하위 클래스를 포함하는 모듈 rules
있습니다. 그 때문에, 나는 확신하기 때문에 그들은 모든 방법 run()
을 구현하고 나는 동적으로 해당 클래스에서 시작된 개체의 목록을 가지고 싶습니다 __init__
의 통화 중에 생성 될 속성 name
있을 것이다. 동적으로 초기화된다는 것은 명시 적으로 이름을 지정할 필요가 없다는 것을 의미합니다.
질문은 다음과 같습니다
이 모듈의 모든 클래스를 통해 반복 할 수 있습니까?
이름이없는 개체를 시작할 수 있습니까?
내 대답보다 낫습니다. 'inspect.isclass()'를 사용하여'TypeError'를 피할 수 있습니다. –
@AntonisChristofides 사실,'inspect.isclass()'를 필터로 사용할 수 있습니다. 그러나 프로덕션 코드에서'inspect' 모듈을 사용하는 것을 피하려고합니다. –
'isinstance (value, type)'를 사용하여 클래스가 있는지 확인할 수도 있습니다. (예전 스타일의 클래스를 지원해야한다면'types.ClassType'을 검사해야하지만, 대신에 그것들을 피할 것입니다.) – Blckknght