2014-03-19 4 views
0

전체적으로 기본적인 파이썬 함수를 이해하고자합니다. "del"은 어떻게 생성합니까? (bash에서) :변수 내 변수 삭제

>>> temp = 1 
>>> python = 1 + temp 
>>> 
>>> 
>>> temp 
1 
>>> 
>>> python 
2 
>>> 
>>> 
>>> del temp 
>>> 
>>> 
>>> python 
2 
>>> 
>>> temp 
Traceback (most recent call last): 
    File "<stdin>", line 1, in <module> 
NameError: name 'temp' is not defined 
>>> 
>>> 
>>> 
+1

변수를 삭제하는 방법을 묻는 중입니까? 예기치 않은 다른 동작이 있습니까? –

+0

'python'에 이미 값 '2'가 할당되었습니다. 결과를 산출하기 위해 'temp'에 대한 _reference를 작성하지 않습니다. 여기에 예기치 않은 일이 있습니까? – devnull

+0

아래의 Elias Benevedes의 답변을 참조하십시오. 변수가 한 시점에서 정의되고 계속 재정의되지 않는다는 것을 이해하지 못했습니다. –

답변

0

방법 변수는 한 번에 다른 변수로 참조됩니다. 귀하의 예제에서, 파이썬 = 임시 + 1, 파이썬은 정의의 시간에 임시 플러스 1 과 같습니다.. 변수 python은 프로세서가 루프를 돌 때마다 다시 계산하지 않습니다. 그 값은 한 번만 정의됩니다. 정의에 포함 된 변수가 변경되면 변경되지 않습니다.

+0

감사합니다. 일라이어스 -이 예제에서 변수 정의에 대해 내가 잘못 이해 한 부분을 설명했습니다. –

0

파이썬 변수

temp 내에서 변수를 삭제하는 것은 내부 python 없습니다. 광고

python = 1 + temp 

temp 변수 python을 만드는 데 사용된다. 따라서 temp을 삭제하면 python에 영향을 미치지 않습니다.

+0

감사합니다. 당신은 잘 이해하고 설명했습니다. –

0

Here이있는 파이썬 델 명령에 대한 매뉴얼은 말씀 : 이름의

삭제가 이름이 세계에서 발생 여부에 따라 로컬 또는 전역 네임 스페이스에서 그 이름의 바인딩을 제거 동일한 코드 블록에있는 문 이름이 바인드되어 있지 않은 경우, NameError 예외가 발생합니다. 예외가 발생하는 이유입니다,

1

는 델 파이썬의 경우, 델 VAR, 그것은이 변수를 제거하므로

Deletion of a name removes the binding of that name from the local or global namespace 

을 의미하며, 당신이 다시 호출 할 때 그것은 사용할 수 없습니다.

+0

고마워요 - var 'python'이 'temp'를 삭제 한 후에 NameError없이 실행되는 이유는 무엇입니까? –