본문 바로가기

공부/python

(python) 함수4 - 지역 변수와 전역 변수

지역 변수는 함수 안에서 선언된 변수이고, 전역 변수는 함수의 외부에서

선언된 변수이다.

width = 10, height = 20은 함수 외부에 있기 때문에 전역 변수이고,

result = w * h는 함수 내부에 있기 때문에 지역 변수이다.

 

지역 변수

지역 변수(local variable)라고 불리며 함수 안에서만 사용할 수 있다.

지역 변수는 함수가 호출될 때, 생성되고 함수 호출이 종료되면 소멸되어서 더 이상

사용할 수 없다. 이것을 변수의 영역(scope)라고 한다.

 

전역 변수

전역 변수(global variable)라고 불리며 파이썬에서의 전역 변수는 다른 언어와 꽤 다르다.

파이썬에서는 다른 이야기가 없으면 함수 안에서 선언된 변수들은 무조건 지역 변수이다.

위의 코드에서 s는 함수의 외부에 정의된 전역 변수이다. sub()를 호출하기 전에 정의 되었고,

호출되기 전에는 실행되지 않는다. 지역 변수를 선언하는 문장이 없으니 전역 변수 s가 사용된다.

 

함수 내부에서 전역 변수 s의 값을 변경했다.

이때 함수 내부에서 지역변수를 추가했으므로

함수 내부의 print(s)는 전역 변수가 아니다.

 

전역 변수를 함수 안에서 사용하려면 global키워드를 사용해야한다.

global키워드를 사용하여 전역 변수의 값을 함수 안에서 변경하였다.

global키워드를 사용하지 않고 파이썬의 함수 안에서 변수에 값을 저장하면 기본적으로 지역 변수가 된다.

파이썬에서는 변수에 값을 할당하는 순간 변수가 선언된다.

 

다음의 예제의 출력결과를 예측해보자.

===============

 

 

 

 

 

 

 

 

 

 

===============

===============

중요한 개념이니 꼭 숙지하자.

 

여러 개의 값 반환하기

함수안에서 반환된 1, 2, 3이 a, b, c변수에 대입되었다.

 

다른 예도 보자.

 

콜백 함수

이벤트가 발생했을 때, 이벤트를 처리하는 함수를 콜백 함수(callback function)라고 부른다.

터틀 그래픽에서도 마우스가 클릭 되었을 때 호출되는 콜백 함수를 등록할 수 있다.

 

마우스를 터틀그래픽 스크린에 클릭할 때마다 lalala를 출력한다.

 

마우스를 클릭할 때마다 스크린의 좌표값을 출력한다.