2014-01-20 4 views
-1

누군가가 파이썬에서 변수 할당을 설명 할 수 있습니까? 나는 변수가 메모리의 한 위치에 태그로 붙어있어서 여러 변수가 같은 위치에 태그 될 수 있다는 것을 이해한다.Python 변수 할당의 동작 스칼라 대 화합물

이것의 의미는 무엇입니까? 따라서 복합 데이터 유형을 변경하여 모든 포인팅 변수를 변경하는 것 외에 다른 점도 있습니까?

복합 데이터 유형을 변경하지 않을 때 이와 관련된 상황이 있습니까?

감사합니다.

+0

가능한 복제본 [파이썬 : 참조로 변수를 전달하는 방법?] (http://stackoverflow.com/questions/986006/python-how-do-i-pass-a-variable-by-reference) – FallenAngel

답변

0

이 질문은 SO 형식으로는 너무 광범위하다고 생각합니다. "동일한 객체에 대한 다중 참조를 사용하여 수행 할 수있는 작업"의 공간이 큽니다. 그러나 관계없이, 예, 변경 가능한 데이터 유형에 대한 다중 참조를 만드는 것보다 가능한 사용 (및 남용)이 있습니다.

예를 들어 생성기와 같이 상태를 유지하는 객체에 여러 참조를 유용하게 사용할 수 있으며 참조에 순서대로 액세스 할 수 있습니다. 상당히 자주 등장 하나 "귀여운 트릭은"n 조각으로 다음과 같은 방법을 "덩어리"는 반복 가능한입니다 : 분명히

s = 'this is a string' 

its = [iter(s)] * 2 

zip(*its) 
Out[17]: 
[('t', 'h'), 
('i', 's'), 
(' ', 'i'), 
('s', ' '), 
('a', ' '), 
('s', 't'), 
('r', 'i'), 
('n', 'g')] 

당신이하지 필요에 동일한 반복자에 여러 참조를 할 수있는 능력 이 작업을 수행하지만, 파이썬을 사용하면이 작업을 수행 할 수 있습니다. 이러한 유형의 접근법은 파일과 같은 객체 또는 그 라인을 따르는 무언가를 "빗대 어"싶다면 유용 할 수 있습니다.

"gotchas"또는주의해야 할 사항은 대부분 동일한 문제에 대한 리프입니다. 파이썬 프로그래밍 FAQ의 How do I make a multidimensional list은 꽤 잘 설명합니다.