2012-03-18 4 views
1

내부에 n 개의 많은 하위 인스턴스에 대한 환경으로 작동하는 작성 인스턴스를 만드는 방법을 찾고 있습니다. 동적으로 상호 연결된 여러 객체가있는 전반적인 '네트워크'인스턴스를 갖는 것과 같습니다. 나의 현재 아이디어는 네트워크 인스턴스를 먼저 인스턴스화 한 다음 내부에 생성 된 초기 하위 오브젝트에 대한 것입니다. 네트워크는 입력을 수신하고 출력을 전송하는 방법을 가지며, 이러한 입력은 하위 오브젝트로 전달되고 하위 오브젝트는 집합 적으로 송신 출력을 형성합니다.Python - 자체 복제 클래스 객체 인스턴스 만들기

내가 필요한 것은 특정 매개 변수가 충족 될 때 셀을 가질 수있는 방법이며 자체를 가져 와서 자체 복사본이지만 다른 이름으로 다른 저장된 데이터를 삽입하는 것입니다. 원본을 대체하지 않고 네트워크 인스턴스에서 집단을 확장합니다. 따라서 이것은 객체 이름의 설정 범위에 대해 알려지지 않고 동적으로 확장 될 수 있지만 자체 복제가 가능한 데이터베이스와 유사한 시스템을 허용합니다. 가능하다면, 객체는 인스턴스로 복제되고 클래스를 호출하지 않을 것입니다. 그러나 저는 아이디어에 완전히 열려 있습니다.

개별 개체를 수동으로 테스트하여 원하는 방식으로 상호 작용할 수는 있지만 개체 클래스를 자체 이니셔티브로 자체 복제하는 단순화 된 방법은 얻을 수 없습니다. 그래서 내가 정말로 필요로하는 것은 텍스트의 벽에 대해 유감스럽게 생각하고, 독서에 감사드립니다.

답변

1

새로운 스타일의 객체는 __class__ 속성에 액세스하여 해당 클래스에 대한 참조를 가져올 수 있습니다. 거기에서 생성자를 호출하고 클래스 속성을 조작 할 수 있습니다.

+0

감사합니다. 이것은 유연성을 허용하면서 가장 직접적인 방법을 제공하는 것 같습니다. – Findeccano

1

부모 개체와 독립적으로 개체를 수정할 수 있도록 개체의 현재 상태를 복제하려면 copy.deepcopy을 사용합니다 (또는 어쩌면 개체의 값은 copy.copy이면 충분합니다.) 개체가 자체의 복사본을 만들고 복사본을 저장하는 컨테이너 개체 (네트워크) 메서드를 호출하는 것이 좋습니다.

def replicate(self, ...): 
    clone = copy.deepcopy(self) 
    # Modify clone if necessary 
    network.add(clone) 
관련 문제