[Python] 메타클래스의 생성자(__new__)

azzurri21·2021년 6월 26일
0
class MetaA(type):
    # def __init__(metacls, name, bases, namespace):       

    def __new__(metacls, name, bases, namespace):
        return type.__new__(metacls, name, bases, namespace)


class A(metaclass = MetaA):
    def __init__(self):
        self.x = 0

    def __new__(cls):
        return super().__new__(cls)


a = A()

B = MetaA('B', (), {})
b = B()

클래스의 메소드 __new__(cls)클래스로 인스턴스를 생성할 때 호출되듯이, 메타클래스의 메소드 __new__(metacls, name, bases, namespace)메타클래스로 클래스를 생성할 때 호출된다.

profile
파이썬 백엔드 개발자

0개의 댓글