오늘 배운점..
클래스는 타입이다? 사실 클래스는 객체 자체이며, 클래스의 인스턴스들은 그 클래스 타입을 가지게 됩니다.
1. 클래스가 타입인 이유
파이썬에서 모든 것은 객체입니다.
클래스도 객체로 취급되며, type이라는 메타클래스의 인스턴스입니다.
인스턴스를 생성하면, 그 인스턴스는 해당 클래스의 타입을 가지게 됩니다.
class MyClass: pass # 클래스는 type의 인스턴스 print(type(MyClass)) # <class 'type'> # 클래스의 인스턴스는 MyClass의 인스턴스 instance = MyClass() print(type(instance)) # <class '__main__.MyClass'>
클래스 자체를 타입처럼 사용하기
클래스를 함수처럼 호출하여 동적으로 객체를 생성할 수 있습니다. 이는 타입 시스템처럼 작동할 수 있음을 보여줍니다.
class Point: def __init__(self, x, y): self.x = x self.y = y # Point는 새로운 타입 p1 = Point(2, 3) print(isinstance(p1, Point)) # True print(type(p1)) # <class '__main__.Point'>
클래스는 type 클래스의 인스턴스로, 객체처럼 다룰 수 있습니다.
type()을 활용해 동적으로 클래스를 정의하거나, 클래스 자체를 타입으로 사용하여 강력한 기능을 구현할 수 있습니다.
이는 파이썬이 동적이며 객체 지향적인 언어임을 잘 보여줍니다.
