<aside> 💡
파이썬은 모든 게 객체이다
파이썬은 꽤나 객체지향적으로 근본이 있다. 그렇기 때문에 객체를 만드는 객체 또한 존재해야 한다. 그것이 바로 메타클래스(metaclass)이다. 아무 설정도 하지 않으면 기본적으로 메타클래스가 정해져 있는 이걸 커스텀해서 쓸 수도 있다.
</aside>
정의
예제
MyClass = type('MyClass', (), {})
myClass = MyClass()
MyClass = type('MyClass', (), {
'a': 10,
'fun': lambda _: print("Hello")
})
myClass = MyClass()
print(myClass.a) # "10"
myClass.fun() # "Hello"
class SuperClass:
def __init__(self):
self.b = 10
MyClass = type('MyClass', (SuperClass,), {
'a': 10,
'fun': lambda _: print("Hello")
})
myClass = MyClass()
print(myClass.b) # 10