[Python] global 에 대한 고찰

2015. 11. 30. 01:50·IT기술 관련/파이썬_루비 등 언어
반응형

출처:http://egloos.zum.com/mcchae/v/11025548

 

파이썬에서도 다른 언어처럼 global 개념이 있지만 약간은 틀리더군요.


다음을 보겠습니다.

GV=10
def gTestA():
i = GV
j = GV+1
print i + j

위 상태에서

gTestA()

를 수행하면 
21
결과를 보여주고 정상 종료 됩니다.

클래스도 보겠습니다.

GV=10
class myClass:
myGV = GV
def __init__(self):
self.myGV = 5
def mA(self):
i = self.myGV
j = myClass.myGV
print i + j
my = myClass()
my.mA()
15

즉, namespace에서 모듈의 global 은 어디서든지 read-only 개념으로 참조가 가능합니다.

하지만 아래의 경우를 보겠습니다.

GV=10
def gTestB():
GV += 1
print GV
gTestB()

수행을 하면,

Traceback (most recent call last):
  File "/home/toor/workpy/SMCLinux/test/global_test.py", line 5, in <module>
    gTestB()
  File "/home/toor/workpy/SMCLinux/test/global_test.py", line 3, in gTestB
    GV += 1
UnboundLocalError: local variable 'GV' referenced before assignment

와 같은 오류가 발생하는 군요.

즉, readonly가 아니라 참조를 하려는데 로컬 변수 사전에서 못 찾는다는 것이겠지요.

GV +=1 윗줄에
global GV
라는 것을 주면 global 사전에 GV가 추가되고, 글로벌 변수를 이용하여 
값을 변경하는 것도 가능합니다.

GV=10
def gTestB():
global GV
GV += 1
print GV
gTestB()

어느분께는 도움이 되셨기를 바랍니다.

 

반응형
저작자표시 (새창열림)

'IT기술 관련 > 파이썬_루비 등 언어' 카테고리의 다른 글

[Python] 반복문 맨 마지막 배열 뽑아내기  (1) 2015.11.30
[Python] MySQL 쿼리 값은 정상인데 DB에 데이터 안들어가는 경우  (0) 2015.11.30
[Python] 파이썬 tail 구현  (0) 2015.11.30
[Python] pip 설치  (0) 2015.11.28
[루비] 숫자를 문자로, 문자를 숫자로 바꾸기  (0) 2015.11.18
'IT기술 관련/파이썬_루비 등 언어' 카테고리의 다른 글
  • [Python] 반복문 맨 마지막 배열 뽑아내기
  • [Python] MySQL 쿼리 값은 정상인데 DB에 데이터 안들어가는 경우
  • [Python] 파이썬 tail 구현
  • [Python] pip 설치
호레
호레
창업 / IT / 육아 / 일상 / 여행
    반응형
  • 호레
    Unique Life
    호레
  • 전체
    오늘
    어제
    • 분류 전체보기
      • 법률
        • 기본
        • 개인정보보호법
        • 정보통신망법
        • 전자금융거래법
        • 전자금융감독규정
        • 신용정보법
        • 온라인투자연계금융업법
      • 창업
        • 외식업 관련
        • 임대업 관련
        • 유통업 관련
        • 세무 관련
        • 마케팅 관련
        • 기타 지식
        • 트렌드
        • Youtube
      • IT기술 관련
        • 모바일
        • 윈도우
        • 리눅스
        • MAC OS
        • 네트워크
        • 빅데이터 관련
        • A.I 인공지능
        • 파이썬_루비 등 언어
        • 쿠버네티스
        • 기타 기술
      • 퍼블릭 클라우드 관련
        • Azure
        • GCP
        • AWS
      • 정보보안 관련
        • QRadar
        • Splunk
        • System
        • Web
      • 기타
        • 세상 모든 정보
        • 서적
      • 게임 관련
        • 유니티
      • 부동산
      • 맛집 찾기
        • 강남역
        • 양재역
        • 판교역
        • ★★★★★
        • ★★★★
        • ★★★
        • ★★
        • ★
      • 결혼_육아 생활
        • 리얼후기
        • 일상
        • 육아
        • 사랑
        • Food
      • 영어
        • 스피킹
        • 문법
        • 팝송
        • 영화
      • K-컨텐츠
        • 드라마
        • 영화
        • 예능
      • 독서
      • 프로젝트 관련 조사
        • 시스템 구축
        • 로그 관련
        • 웹
        • APT
        • 모의 해킹
        • DB
        • 허니팟
        • 수리카타
        • 알고리즘
        • FDS
      • 기업별 구내 식당 평가
        • 한국관광공사
        • KT telecop
        • KT M&S
        • KT powertel
        • KT cs 연수원
        • 진에어
      • 대학 생활
        • 위드윈연구소
        • 진로 고민
        • 채용정보
        • 자동차
        • 주식
        • 악성코드
        • 게임 보안
      • 쉐어하우스
  • 블로그 메뉴

    • 홈
    • 게임 관련
    • IT 기술 관련
    • 태그
  • 링크

  • 공지사항

  • 인기 글

  • 태그

    대통령
    마케팅
    점심
    수제버거존맛
    무역전쟁
    상호관세
    수제버거맛집
    런치
    판교
    맛집
    수제버거
    보안가이드
    판교역
    판교맛집
    AWS
    이재곧죽습니다
    유니티
    쥬쥬랜드
    복리후생
    돈까스
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.0
호레
[Python] global 에 대한 고찰
상단으로

티스토리툴바