파이썬 함수 설명 (2) 변수와 스코프

2021. 12. 9. 11:16·개발/Python

파이썬 함수 내에서 선언한 변수의 스코프(범위)는 기본적으로 해당 함수 내로 제한됩니다. 이는 함수 내에서 사용되는 변수가 함수 외부의 변수들과는 독립적이라는 의미이기도 합니다.

a = 1

def cal(a):
    a += 1
    return a

print(cal(a))
# 2

print(a)
# 1

위 예시에서는 cal() 함수 밖에 a라는 변수가 존재합니다. 함수에 a를 인수로 넣어 얻게 되는 결과값은 2이지만, 함수 밖의 a 변수의 값은 여전히 1입니다.

 

함수 내의 변수가 함수 안에서만 유효하다는 건 다음 방식으로도 확인할 수 있습니다.

def cal(a):
    a += 1
    return a

print(cal(1))
# 2

print(a)
# NameError: name 'a' is not defined

이처럼 마지막 print(a)에서 오류가 발생하는 이유는 함수 외부에서 a 변수가 선언된 적이 없기 때문입니다.

 

그렇다면 함수 내부에서 함수 외부의 결과값을 변경할 수는 없을까요? 다음과 같이 마지막 함수의 결과값을 외부 변수에 할당하면 가능합니다.

a = 1

def cal(a):
    a += 100
    return a

print(a)
# 1

a = cal(a)

print(a)
# 101

그러나 이 때에도 함수 내부의 a와 외부의 a는 여전히 다른 변수이며, 해당 결과값이 동일할 뿐입니다.

 

다음과 같이 global을 사용하여 변경할 수도 있지만, 이는 권장되지 않는 방법입니다.

a = 1

def cal():
    global a
    a += 100
    return a

cal()
print(a)
# 101

'개발 > Python' 카테고리의 다른 글

파이썬 클라스 설명 (1) 클라스란?  (0) 2021.12.13
파이썬 함수 설명 (1) 입력과 출력  (0) 2021.12.08
파이썬 for 구문 설명  (0) 2021.12.07
'개발/Python' 카테고리의 다른 글
  • 파이썬 클라스 설명 (2) 인스턴스와 메소드란?
  • 파이썬 클라스 설명 (1) 클라스란?
  • 파이썬 함수 설명 (1) 입력과 출력
  • 파이썬 for 구문 설명
휘Hwi
휘Hwi
여행, 사진, 개발, 책 이야기를 기록하는 여행자 휘의 블로그 𓂍
마이리얼트립 프로모션 할인 🏝️
마이리얼트립 호텔 예약 배너
※ 배너를 클릭하여 상품 구매 시, 파트너스 활동에 대한 소정의 수수료를 지급받습니다. 구매자에게 추가로 부과되는 수수료는 없습니다.
  • 휘Hwi
    휘: 끝나지 않은 이야기
    휘Hwi
  • 전체
    오늘
    어제
    • 분류 전체보기 N
      • 기록
        • 일상 에세이
        • 인사이트
        • 투자와 재테크
        • 코인 이야기
        • 아카이빙
        • 집무실 레터
        • 사랑에 대하여
        • 번역 이야기(完)
        • 프리랜서 일지(完)
      • 여행 N
        • 🌎 세계 여행기 S1 (完)
        • 🌊 삼삼한 여행기 (完)
        • 🚶 온더로드
        • 🇯🇵 일본
        • 🏝️ 발리
        • 🇻🇳 베트남 N
        • 🇱🇰 스리랑카
        • 🇮🇳 인도
        • 🇹🇭 태국
        • 🇸🇬 싱가포르
        • 🇦🇺 호주
        • 🇭🇰 홍콩
        • 🇰🇷 한국
        • 🍚 여행자의 한 끼
        • ℹ️ 여행 정보
      • 사진
        • 사진가
        • 사진 이론과 생각
        • 사진 관련 정보
      • 영상
        • 파이널컷 모션 공부
        • 고프로 GoPro
        • 영상 관련 정보
      • 책
        • 책 읽고 쓰기
      • 개발
        • 티스토리
        • Internet
        • HTML
        • CSS
        • JavaScript
        • Typescript
        • React
        • Node.js
        • Express
        • NestJS
        • Python
        • Django
        • MySQL
        • MongoDB
        • AWS
        • Deployment
        • Terminal
        • Git
        • Glossaries
        • Articles
        • Projects
        • TIL;
      • 미분류
  • 인기 글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.3
휘Hwi
파이썬 함수 설명 (2) 변수와 스코프
상단으로

티스토리툴바