[AIVLE SCHOOL] 복습_0911

춤추는 머쉬룸·2024년 9월 11일

AIVLE SCHOOL 6기

목록 보기
13/80
post-thumbnail

9/11 세션1

전역변수와 지역변수

1. 전역변수는 참조는 가능하나, 재선언은 불가능

> def test():
    print(member) # print 문 때문에 함수 내 member가 전역 변수가 됨
    member = [1, 2, 3, 4, 5] # 함수 안에서 전역 변수를 재선언 하는 것은 불가능
    print(member)

> member = ['홍길동', '일지매', '한사랑']

> test()
> print('-' * 30)
> print(member)

---------------------------------------------------------------------------
UnboundLocalError                         Traceback (most recent call last)
Cell In[23], line 8
      4     print(member)
      6 member = ['홍길동', '일지매', '한사랑']
----> 8 test()
      9 print('-' * 30)
     10 print(member)

Cell In[23], line 2, in test()
      1 def test():
----> 2     print(member) # print 문 때문에 함수 내 member가 전역 변수가 됨
      3     member = [1, 2, 3, 4, 5] # 함수 안에서 전역 변수를 재선언 하는 것은 불가능
      4     print(member)

UnboundLocalError: cannot access local variable 'member' where it is not associated with a value

2. global 로 선언하면 재선언 가능!!

> def test():
    global member # 함수 안에서 전역 변수를 마음대로 사용하겠다고 선언!!!
    print(member)
    member = [1, 2, 3, 4, 5] # 전역변수 member 를 초기화
    print(member)

> member = ['홍길동', '일지매', '한사랑']

> test()
> print('-' * 30)
> print(member)

['홍길동', '일지매', '한사랑']
[1, 2, 3, 4, 5]
------------------------------
[1, 2, 3, 4, 5]

3. 그러나 리스트이기에, 값을 변경하는 건 가능!

> def test():
    print(member)
    member.append('hello')
    print(member)

> member = ['홍길동', '일지매', '한사랑']

> test()
> print('-' * 30)
> print(member)

['홍길동', '일지매', '한사랑']
['홍길동', '일지매', '한사랑', 'hello']
------------------------------
['홍길동', '일지매', '한사랑', 'hello']

0개의 댓글