2014-01-14 2 views
-1
class trial(object): 
     def __init__(self): 
     sup = '' 
     sup = self 
     print sup 

trial_1 = trial() 

할당 작업 self.var = var은 의미가 있지만 왼쪽에 변수를 할당합니다. self - (a) 이것은 무엇을 의미합니까? 게다가 (b) 왜 어떤 프로그램이 이것을할까요?variable = self는 무엇을 의미합니까?

답변

3

sup은 현재 self에 대한 또 다른 참조 일뿐입니다. 두 이름 모두 동일한 개체을 참조하십시오.

이유는 여러 가지가있을 수 있지만 더 많은 상황이 필요합니다.

나중에 이름을 리 바인드하려고하지만 시작점으로 self이 필요하면 할당이 적절할 수 있습니다. 알고리즘이 같은 변수 이름에 자식 노드를 self에서 시작하고, 루프에서 반복적으로 할당 마음에 그래프 탐색 스프링 :

sup = self 
while sup.has_children(): 
    sup = sup.get_first_child() 

나는 sup보다 더 좋은 이름을 선택 것 제외.

3

다른 할당과 마찬가지로 self 개체를 가리키는 다른 이름을 만듭니다.

왜 그런지는 좋은 질문입니다. 실제로 아무런 도움이되지 않습니다.

+1

@WLin 왜 그런 변수를 다른 변수에 할당해야합니까? 곧바로'self'를 사용할 수 있습니다. – thefourtheye

+0

동의. 나는 무관 한 무언가를 생각하고 있었다. 이전 코멘트를 삭제했습니다. – WLin

관련 문제