티스토리 뷰

Python

[Python] Variable Access

Dongi 2022. 2. 6. 05:30

 

 

 

안녕하세요 동기 여러분!

오늘은 파이썬 함수에서의 전역 변수, 지역 변수에 대해 알아봅시다.

 

 

 

 

 

Global Variable

전역 변수(Global Variable)는 코드 파일 전체에 영향을 미치는 미친놈 아아니... 대단한 변수입니다.

varivaristrawvari = "베리베리 스트로베리" # -> 얘가 전역 변수

 

과연 변수 varivaristrawvari가 코드 파일 전체에 영향을 미치는지 확인해봅시다.

위의 스크린샷을 보면 함수를 실행했더니 변수 varivaristrawvari가 함수 안의 print문에 들어가서 출력이 되어 나오는 것을 볼 수 있습니다. 흠.. 이거만 보면 '이거 당연한 거 아니야?'라고 생각이 들 수 있습니다. 

 

아래의 코드를 보도록 합시다.

 


 

Local Variable

지역변수(Local Variable)은 말 그대로 지역 범위(Local Scope) 내에서 영향을 미치는 변수입니다.

def print_varivaristrawvari():
    varivaristrawvari = "베리베리 스트로베리" # -> 얘가 지역변수
    print(varivaristrawvari)

'뭐야, 아까랑 똑같은데?'라고 생각하실 수도 있지만 위치가 다릅니다. 위치가 다르다는 것을 범위(Scope)가 다르다고 표현하는데요, 아까의 varivaristrawvari는 함수 밖에서 선언되어 어떤 함수나 클래스에서도 사용이 가능하지만 함수 print_varivaristraevari 지역범위 안에서 선언된 varivaristrawvari는 함수 안에서만 사용이 가능합니다.

 

한 번 확인해보죠!

이름 에러 : 이름 'varivaristrawvari'는 정의 되지 않았다.

varivaristrawvari가 지역변수인지 확인하기 위해 함수 밖에서 varivaristrawvari를 출력해봤는데 역시나 정의 되지 않은 변수라고 에러를 띄워줍니다.

 


지역 변수(Local Variable)을 전역 변수(Global Variable)로 사용하려면 어떻게 해야 할까?

바로 global 키워드를 사용해서 난 varivaristrawvari를 전역 변수로 사용할거야! 라고 선언해주시면 됩니다. 단 전제 조건이 하나 있는데 함수를 한 번 호출을 해줘야합니다. (그래야 적용이 되니까)

def print_varivaristrawvari():
    global varivaristrawvari
    varivaristrawvari = "베리베리 스트로베리" # -> 얘가 지역변수
    print(varivaristrawvari)


print_varivaristrawvari()   # -> 얘는 함수 호출임 

print(varivaristrawvari)    # -> 얘가 출력문

함수 정의문 바로 밑에 보면 global varivaristrawvari가 있는데 이 문장이 바로 "난 varivaristrawvari를 전역변수로 사용할 거야!"라고 말해주는 선언문 되시겠습니다.

 

전제 조건으로 함수를 호출해야 한다고 했는데 만약 호출하지 않고 바로 출력문을 사용하면 아래와 같은 에러가 발생합니다.

 

이름 에러 : 이름 'varivaristrawvari'는 정의 되지 않았다.

 

왜냐하면 함수를 호출하지 않으면 변수가 아예 선언이 되지 않은 상태가 되기 때문에 반드시 함수를 한 번 호출해주어야 합니다.

 


 

오늘의 느낌

목에 담 걸린 게 점점 풀리고 있는 느낌이라 내일부터는 운동을 다시 가야겠어요! 신난당

'Python' 카테고리의 다른 글

[Python] Multiple Returns  (0) 2022.02.06
[Python] Returns  (0) 2022.02.06
[Python] Types of Arguments  (0) 2022.02.05
[Python] Multiple Parameters  (0) 2022.02.05
[Python]Parameters & Arguments  (0) 2022.02.05
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2024/07   »
1 2 3 4 5 6
7 8 9 10 11 12 13
14 15 16 17 18 19 20
21 22 23 24 25 26 27
28 29 30 31
글 보관함