a = 10 #함수 바깥에 있으므로 전역변수(a)
def func(b):
c = a+b #함수 안에 있으므로 지역변수(b,c)
return c
print(func(10))
global() --> 전역변수를 선언하는 함수이다.
전역변수를 선언하는 방법은 변수명 앞에 global을 붙이는 것이다. 아래와 같이 함수 안에서 global을 붙여도 되고, 함수 밖에서 global을 붙여도 된다. 하지만 함수 밖에서 선언하였다면 함수 안에서 사용을 명시해주어야 한다.
1) 함수 안에서 global로 전역변수 선언하기
def test():
global a
a = 3
b = 2
return a + b
print(test())
print(a)
2) 함수 밖에서 global로 전역변수 선언하기(함수 밖에서 global로 전역변수 선언을 하였어도, 함수 안에도 전역변수 사용을 또 명시해 주어야 한다. 함수 안에서 전역변수 사용을 명시해주지 않으면 해당 변수는 지역변수로 처리되고 만다. 아래 코드에서 함수 안에 global a를 삭제하면, a값은 1이 된다.)
global a
a = 1
def test():
global a
a = 3
b = 2
return a + b
print(test())
print(a)
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 | #1. 함수 내에서 global함수를 통해 전역변수를 선언. def test(): global a a = 3 return a print(test()) #3 global haha haha = 5 #2. 아무것도 출력이 되지 않음. 즉 전역변수를 새로운 함수 내에서 다시 쓸 수 없다. def test2(): print(a) #아무것도 출력X print(haha) #아무것도 출력X #3. #함수 밖에선 출력이 가능 (5) print(a) #3 print(haha) #5 #4. 새로운 함수에서 이미 만들어졌던 전역함수를 다시 선언하면 에러가 발생 def test3(): global a a = 3 return a print(test2()) #None | cs |