: 객체의 메모리 주소 값을 가리키는 것
때문에 b = a라고 할 때 b는 a가 가리키는 객체의 값을 복사하는 게 아닌
객체의 메모리 주소 값을 복사한 것이다. 이러한 이유로 어느 하나라도
객체의 값을 바꾸게 되면 나머지 하나도 바뀐 값을 가진 객체를 가리키게 된다.
str = "python"
a = list(str)
b = a
b[0] = "q"
print(a)
→ ['q', 'y', 't', 'h', 'o', 'n']
함수가 호출될 때 생성되고 함수가 끝나면 사라지게 된다.
만약 함수 밖에서 함수 호출 없이 지역변수를 부르려고 하면 변수가 정의되지 않았다는 오류 메세지가 뜸
이러한 이유 때문에 특정 A 함수 내의 변수와 또 다른 함수 내의 변수,
그리고 함수 밖의 변수가 이름이 서로 같아도 되는 이유가 이 때문이다.
만약, 함수 안에서 전역변수와 똑같은 이름의 지역변수를 할당하면 전역변수가 아닌 지역변수가 출력됨
또한 만약, 함수 안에서 전역변수의 값을 직접 수정하거나 사용하려고 할 때는 함수 내부에서
전역변수 앞에 'global' 키워드를 붙여서 선언해야 함
def add_two_num(a, b):
global result
print("덧셈중...")
result = a + b
return result
result = 0
add_two_num(10,13)
print(result)
g_var = "global" # 전역변수
def func(): l_var = "local" # 지역변수
print(l_var) # 지역변수 접근 가능
print(g_var) # 전역변수 접근 가능
print(g_var) # 접근 가능
# print(l_var) # func()의 지역변수 이므로, func() 외부에서는 없는 변수입니다. error