클래스에서 다른 클래스의 인스턴스를 속성으로 사용하는 방법은 무엇인가요?

인스턴스 속성을 사용하려면 먼저 클래스의 생성자 메서드(__init__) 내에서 해당 클래스의 인스턴스를 생성하고, 이를 클래스의 속성으로 설정해야 합니다. 이렇게 하면 해당 클래스의 인스턴스를 다른 메서드에서 호출하거나 수정할 수 있습니다.

예시를 통해 설명해보겠습니다. 다음과 같은 두 개의 클래스가 있다고 가정해봅시다:

class Person:
    def __init__(self, name, age):
        self.name = name
        self.age = age

class Car:
    def __init__(self, brand, owner):
        self.brand = brand
        self.owner = owner

위의 예시에서 Car 클래스의 생성자 메서드(__init__) 내에서 Person 클래스의 인스턴스(owner)를 속성으로 사용하고 있습니다. 이렇게 함으로써 Car 클래스의 인스턴스를 생성할 때, 해당 차량의 소유자에 대한 정보를 대응하는 Person 클래스의 인스턴스로 설정할 수 있습니다.

person1 = Person("John", 30)
car1 = Car("Tesla", person1)
print(car1.owner.name)  # 출력: "John"
print(car1.owner.age)  # 출력: 30

위의 예시에서 car1.ownerPerson 클래스의 인스턴스(person1)를 참조하는 속성입니다. 따라서 car1.owner를 통해 owner 속성의 내부 속성(name, age)에 접근할 수 있습니다.

이와 같은 방식으로 클래스에서 다른 클래스의 인스턴스를 속성으로 사용할 수 있습니다. 이는 객체 간의 관계를 표현하고 데이터의 구조를 유연하게 설계하는 데 도움이 됩니다. 클래스 간의 상속 관계나 다른 디자인 패턴을 사용하여 이러한 관계를 조금 더 추상화할 수도 있습니다.

참고 자료: