파이썬에서 클래스의 인스턴스를 서브 클래 싱하는 목적은 무엇입니까? 다음은 예입니다 :클래스의 인스턴스를 슈퍼/기본 클래스로 사용하는 목적은 무엇입니까?
class A:
def __init__(*args): print(args)
base = A()
class Test(base): pass
이 코드는 파이썬에서 제대로 작동하지만 base
클래스 A
의 인스턴스 (1) 왜 우리는 클래스의 인스턴스를 서브 클래 싱해야합니까?메타 클래스와 관련이 있습니까? 이 질문에서
: What happens when you inherent from a module instead of a class in Python?
내가 Test(base)
이 type(base).__init__
이 될 것이라고 이해하고, (2) 이 정의 시간에 발생합니까, 클래스가 정의? (3) 파이썬은 base
이 클래스의 인스턴스라는 것을 어떻게 알거나 결정합니까? type(base)
이 type
을 반환하지 않기 때문입니까?
실제 생산 코드가 없습니까? 아니면 그냥 호기심입니까? –
호기심과 기능에 대한 합리적인 사고 욕구 :-) – direprobs
아니요, 'Test (base)'는'type (base) .__ init__ '이되지 않습니다. 그것은'type (base) .__ new__'가되며, 이는 다시'__init__'를 호출 할 수 있습니다. 그리고 예, 그것은 메타 클래스 때문입니다. –