아니요, 이것은 중복되지 않습니다. -board - 플레이어Python shallow/deep 복사 오류
플레이어가 인스턴스화 될 때, 그 플레이어를위한 새로운 보드 객체를 만듭니다
나는 다음과 같은 클래스가 있습니다.
나는 현재 및 잠재 플레이어로 전환하는 기능이 있습니다
from copy import deepcopy
switch_players(self):
temp_val = deepcopy(self.current_player)
# self.current_player = None
self.current_player = deepcopy(self.latent_player)
# self.latent_player = None
self.latent_player = deepcopy(temp_val)
temp_val = None
내가 self.current_player.name
를 호출 할 때이 선수의 이름에 대한 잘 작동을하지만 self.current_player.board.display
를 사용하거나, 그것에 를 쓸 때 그것은 참조 두 선수 모두 같은 기판이 있습니다.
나는이 같은 전환 할 보드의 deepcopy()
을 만드는 코드를 추가했지만 여전히 동일한 문제가 발생합니다. 이런 일을 근본적으로 잘못된 방법일까요? 아니면이 접근법이 맞습니까? 그리고 다른 곳에서 코드를 찾아야합니까? (나는이 일을하는 또 다른 방법이 있지만 왜이 현재의 접근 방식이 작동하지 않는지에 대한 이론을 이해하지 못한다.)
자신 만의 복사 기능을 만들어야합니다. – quantummind
그냥 그 스레드를 발견 - 덕분에 도움을! –