본문 바로가기

전체 글18

[파이썬] 클로저 클로저란, 자신을 둘러싼 스코프(네임스페이스)의 상태값을 기억하는 함수입니다. 내부함수는 외부함수의 지역변수에 접근 할 수 있는데 외부함수의 실행이 끝나서 외부함수가 소멸된 이후에도 내부함수가 외부함수의 변수에 접근 할 수 있다. 이러한 메커니즘을 클로저라고 합니다. 클로저를 만들기 위해서는 다음 세가지 조건을 만족해야 합니다. 클로저는 어떤 함수 내의 중첩된 함수이다. 클로저는 자신을 둘러싼(enclose) 함수 내의 상태값을 참조한다. 클로저를 둘러싼 enclose 함수는 클로저를 반환한다. 아래 코드의 calc_square 함수는 클로저를 만들기위한 다음 세가지 조건을 만족하므로, 클로저입니다. cal_square 함수는 함수 calc에 중첩된 함수이다. cal_square 함수는 자신을 둘러싸고 .. 2022. 11. 21.
[파이썬] 함수 내에 함수가 정의되어 있는 경우 지역변수 사용 함수 내에 함수가 정의되어 있는 경우 지역변수 사용 범위에 대해 알아보겠습니다. ■ 변수 사용 범위 안쪽 함수는 바깥쪽 함수에서 정의된 지역변수를 사용할 수 있다. def outerfunc(): n = 1 def innerfunc(): print(n) innerfunc() outerfunc() [ 실행결과 ] 1 바깥쪽 함수는 안쪽 함수에서 정의된 지역변수를 사용할 수 없다. def outerfunc(): def innerfunc(): n = 1 print(n) outerfunc() [ 실행결과 ] ■ 지역변수 우선순위 안쪽 함수와 바깥쪽 함수에 동일한 변수명이 존재하는 경우, 안쪽 함수에 우선순위가 있다. def outerfunc(): n = 1 # outerfunc의 변수 n에 1 할당 def inn.. 2022. 11. 20.
[파이썬] 함수에서 변수의 사용 범위 파이썬의 지역변수, 전역변수에 대해 알아보겠습니다. 파이썬에서 변수를 사용할 때, 함수 바깥에서 정의된 변수와 함수내에서 정의된 변수는 다릅니다. 함수 바깥에서 정의된 변수를 전역변수, 함수 내에서 정의된 변수를 지역변수라고 합니다. 전역변수는 프로그램 전체 어디서든 사용할 수 있고, 지역변수는 해당 함수 내에서만 사용할 수 있습니다. 함수 내에서 지역변수를 정의할 때 전역변수의 이름과 동일한 변수명을 사용할 수 있습니다. 함수 내에서 지역변수를 정의할 때 다른 함수의 지역변수와 동일한 이름의 변수명을 사용할 수 있습니다. 코드를 통해 지역변수와 전역변수를 알아보겠습니다. ■ 전역변수 함수 밖에서 생성된 변수. 함수 안,밖 어디서든 사용할 수 있다. say1 = 'hello' # 전역변수 def sayh.. 2022. 11. 20.
[파이썬] 함수, 퍼스트 클래스 함수 퍼스트클래스 함수란, 프로그래밍 언어가 함수를 first-class-citizen으로 취급하는 것을 말합니다. 함수를 객체로 취급하여 다음과 같은 것들을 할 수 있습니다. 1. 함수를 변수에 할당한다. 2. 함수를 인자로 넘긴다. 3. 함수를 리턴한다. 위 3가지에 해당하는 내용을 예시코드를 통해 살펴보겠습니다. 1. 함수를 변수에 할당한다. ■ 아래 코드는 하나의 숫자를 인자로 받아 제곱한 값을 리턴해주는 함수로, 일반적인 함수 사용법입니다. def square(n): return n**2 print(square(5)) [실행결과] 25 ■ 위 코드에서 함수명 square를 변수 f에 할당하여 f를 함수명처럼 사용합니다. def square(n): return n**2 f = square # 함수명을 .. 2022. 11. 19.