0
질문이 약간 혼란 스럽기 때문에 다음에 더 자세히 설명하겠습니다.클래스 생성시 동적으로 생성 된 메타 클래스를 동적으로 할당하십시오.
나는이 두 클래스 중 하나가 type
상속 정의했다 :
class ProductType(type):
def __new__(cls, name, bases, attrs):
return super(ProductType, cls).__new__(cls, name, bases, attrs)
class Product(object):
__metaclass__ = ProductType
이제 런타임에, 나는 ProductType
의 서브 클래스 생성 :
Insurance = type('Insurance', (ProductType,), {})
그리고을의 서브 클래스를 생성 Product
으로 설정하면 해당 메타 클래스는 Insurance
으로 설정됩니다.
이제 명백한 이유가 있습니다 (지금까지는 보이지 않습니다). type(HouseInsurance)
을 입력하면 Insurance
이 아니라 ProductType
이됩니다. 동적으로 생성 된 클래스가 어떤 이유로 동적으로 생성 된 메타 클래스를 무시하는 것으로 보입니다. 왜 이런 일이 일어나고 어떻게 해결할 수 있습니까?
오, 나는 그것이 간단한 것이라고 알고있었습니다. 이것을 지적 해 주셔서 감사합니다! – linkyndy