del 키워드를 이용해서 변수와 객체의 연결을 끊을 수 있습니다.
del 키워드는 다음과 같이 사용가능합니다.
del target_list
변수를 삭제하면 변수가 동일한 코드 블록의 전역문에서 발생하는지 여부에 따라
로컬 또는 전역에서 해당 변수의 바인딩이 제거됩니다. 변수가 삭제된후 참조를 하게 되면 NameError 에러가 발생합니다.
아래 코드를 참조하면 됩니다.
a = 10 print (a) del a print (a) |
실행결과는 처음 print문에서는
변수 a의 값이 제대로 나오지만 두번째 print문에서는
에러가 발생됨을 알 수 있습니다.
10 Traceback (most recent call last):
File "del_test1.py", line 7, in <module>
print (a) NameError: name 'a' is not defined |
그런데 아래 코드와 같이 로컬에서
global로 선언한 변수를 삭제하면 어떻게 되는지를 보면
count = 10 def test (a):
global count
count = count + a
print (count)
del count test (100) print (count) |
첫번째 print문에서는 이상없이
값을 출력되지만 역시 마찬가지로 NameError 에러가 발생됨을 볼 수 있습니다.
110 Traceback (most recent call last):
File "del_test2.py", line 13, in <module>
print (count) NameError: name 'count' is not defined |
마찬가지로 nonlocal로 선언된
변수를 삭제하면 바로 위의 함수에서 참조를 하면 NameError 에러가 발생됩니다.
댓글 없음:
댓글 쓰기