나는 그것의 주장에서 파생 된 클래스를 생성하는 기능을 가지고 : 나는 새로운 클래스를 생성하는 데 사용할 이제클래스 이름을 동적으로 설정하는 방법은 무엇입니까?
def factory(BaseClass) :
class NewClass(BaseClass) : pass
return NewClass
를, 클래스는 모두 같은 이름, 그들은 같은 유형이 같은 경우가보고되어 있습니다 :
NewA = factory(ClassA)
NewB = factory(ClassB)
print type(NewA()) # <class __main__.NewClass>
print type(NewB()) # <class __main__.NewClass>
__name__
속성을 수동으로 설정하는 올바른 수정 프로그램이 있습니까?
NewA.__name__ = 'NewA'
print type(NewA()) # <class __main__.NewA>
내가 설정하는 동안 다른 설정을해야합니까?
NewClass의 클래스 정의가 매우 긴 경우 다소 복잡해 보입니다. 나는 모든 메소드를 사전에 모아야 만 할 것이다. (나는 doc 문자열이 키값''__doc __ ''아래에 있다고 가정한다). – kiyo
또한 NewClass의 메소드가 BaseClass의 메소드를 동적으로 참조해야한다면? – kiyo
'type'은 가변적 인 기본리스트를 가진 클래스를 생성하는 것과 같습니다. 이것에 대해서는 완전히 잘못된 도구입니다. –