d = deque('abc')
a = d
d.clear()
print a
양단 큐 ([])
가 비어있는 양단 큐를 반환 왜
? 구형 deque를 지우지 만 에에 데이터를 보유 할 것으로 예상됩니다.
d = deque('abc')
a = d
d.clear()
print a
양단 큐 ([])
가 비어있는 양단 큐를 반환 왜
? 구형 deque를 지우지 만 에에 데이터를 보유 할 것으로 예상됩니다.
a
및 d
참조 같은 객체를 참조. 따라서 clear
이면 "두 변수"에 대해 지워집니다.
개체의 ID를 인쇄하여 확인할 수 있습니다. 당신은 변수 자체가 아니라 객체에 대한 참조를 유지하기 때문에 당신이 그것을 복사 할 수있는 개체를 처리하는 경우 할당하여
>>> id(a)
44988624L
>>> id(d)
44988624L
복사 값 등 int
같은 기본적인 데이터 유형 만 가능하다.
당신은 할 수있는 그와
d = deque('abc')
a = deque('abc')
또는
>>> id(a)
44988624L
>>> id(d)
44989352L
을 초래하지만 당신은 다릅니다 두 개의 서로 다른 a
에있는 개체와 d
를 얻을 것이다
>>> import copy
>>> d = copy.copy(a)
와 당신이 그것을 사용한 후에.
>>> from copy import deepcopy
>>> d = deque('abc')
>>> a = deepcopy(d)
>>> d.clear()
>>> a
deque(['a', 'b', 'c'])
또는 사용할 수 deque's
내장 사본 기능. 당신은 같은 객체 그게 전부에 대한 참조를 제공했다
>>> d = deque('abc')
>>> a = d.__copy__
>>> a
<built-in method __copy__ of collections.deque object at 0x02437C70>
>>> a = d.__copy__()
>>> a
deque(['a', 'b', 'c'])
>>> d.clear()
>>> a
deque(['a', 'b', 'c'])
왜 삭제 후
d
심지어
a
가 지워지고 있었다. 이를 위해서는 deepcopy를 사용하여
object d
을
a
으로 복사해야합니다. 어떤 당신을위한 복사 객체를 대신 그것을
>>> id(a)
37976360
>>> id(d)
37976248
라인 :
a = d
복사본을 만들지 않습니다 - 그냥 동일한 개체에 대한 다른 이름을 만듭니다.
복사본을 생성하려면 다음을 수행하십시오
d = deque('abc')
a = deque(d)