본문 바로가기

카테고리 없음

파이썬기초(12) local_globalVar

# 지역변수와 전역변수의 이해
1. 유효범위
    자신이 활동할 수 있는 범위
    함수1 - 지역변수1, 지역변수2, 동일변수1
    함수2 - 지역변수3, 지역변수4
    전역변수1
    동일변수1
2. 지역변수 : 한정된 지역(local)에서만 사용되는 변수
    생존 범위 : 위에 예시로  지역변수1, 지역변수2는 
        함수1에서 사용되고 함수2에서는 사용되지 못한다.
3. 전역변수 : 프로그램 전체(global)에서 사용되는 변수
    생존 범위 : 위에 예시로 전역변수1은 함수1과 함수2에서
    사용할 수 있다.
4. 지역변수와 전역변수의 이름이 같은 경우
    1) 지역변수가 우선됨
    2) 위 유효범위내용 함수1은 전역변수와 지역변수로
     동일변수1가 있을 때, 지역변수에 있는 동일변수1을 호출하여
     사용한다.
    3) 함수2는 해당 함수내에 동일변수1이 없기에 전역변수에 있는
        동일변수1로 호출하여 사용한다.

gloVar01=10
commVar02 = 20
def fun01():
    locVar03=30
    locVar04=40
    print("지역변수03호출:",locVar03)
    print("전역변수01호출:",gloVar01)
    # print("외부함수 지역변수호출:",locVar05)
    print("공통변수02호출:",commVar02)
def fun02():
    locVar05=50
    commVar02=60
    print("지역변수05호출",locVar05)    
    print("공통변수02호출",commVar02)   
fun01()    
fun02()
print("전역변수 호출:",gloVar01)

 

 

# ex) 회사이름과 공통부서명을 전역변수로 선언하고,
#     part01(), part02()에서 각각의 부서명을 선언하여 회사이름과 부서명을 호출하되
#     part02()에서는 공통부서명과 동일한 변수로 부서명을 다르게 할당했을 때,
#     처리되는 데이터를 출력하세요..

compName = "행복한 사람들(회사명)"
commPart = "아이티사업부"
def part01():
    part01="인사부"
    print("회사명:",compName)
    print("부서명:",part01)
    print("공통부서명:",commPart)
def part02():
    part02 = "재무팀"
    commPart = "기획재정실"
    print("회사명:",compName)
    print("부서명:",part02)
    print("공통부서명:",commPart)
part01()    
part02()

 

 

# global 예약어
1. 함수 안에서 사용되는 변수로 지역변수 대신에 무조건 전역변수로
    사용하고 싶은 경우에 사용하는 예약어
2. global 예약어와 함께 나오는 변수명은 무조건 전역변수이다.

def func01():
    global num01
    num01 = 10
    print("함수01의 num01:",num01)
def func02():
    print("함수02의 num01:",num01)
# num01 = 20  
func01()  
num01 = 20          
func02()

 

 

# ex) buy01(), buy02()를 통해 price01, price02를 통해서 물건값으로 구매했을
#     때, 해당 물건을 구매가격을 출력하고 buy01()에서 global 키워드를 이용해서
#     전역변수를 선언하고,  총비용을 누적해서 buy02()에서 출력하세요.

def buy01():
    price01 = 1000
    print("물건1의 구매가격:",price01)
    global sum
    sum = price01
def buy02():
    price02 = 2000
    print("물건2의 구매가격:",price02)
    print("총재 총비용:", sum + price02)    
buy01()    
buy02()