20240213 이것이 코딩 테스트다 챕터4(구현)
함수 안에서 함수 밖의 변수 변경하는 방법
함수 안에서 함수 밖에 이미 선언된 변수를 사용할 수 있을까?
```python
a = 10
def my_func():
temp = a + 10
print(temp)
my_func()
### 출력
## 20
```
사용할 수 있다.
함수 안에서 함수 밖에 이미 선언된 변수값을 변경할 수 있을까?
```python
a = 10
def my_func():
a = 30
print(a)
my_func()
print(a)
### 출력
## 30
## 10
```
위와 같은 방법으로는 변경되지 않는다.
*return값을 사용해서 변경*하거나 *global 키워드를 사용하여 변경*해야한다.
return값 사용
함수 밖에 선언되어 있는 변수를 함수의 매개변수로 받아 함수 안에서 매개변수의 값을 변경시킨 뒤 변경된 값을 return하도록 함수를 만들고, 함수 밖 변수의 값을 return값으로 변경시킨다.
a = 10
def my_func(temp):
temp = 30
return temp
a = my_func(a)
print(a)
### 출력
## 30
global 키워드 사용
함수 밖에 선언되어 있는 변수를 함수 안에서 global 키워드로 선언한뒤 함수 안에서 값을 변경시키게 되면 함수 밖의 변수도 값이 변경된다.
이때 global 키워드로 변수를 선언하는 것과 그 변수의 값을 변경하는 것을 한줄로 적게되면 SyntaxError가 발생한다. 먼저 global 키워드로 변수를 선언하고, 그 다음줄에서 변수의 값을 변경해야한다.
a = 10
def my_func():
global a
a = 30
my_func()
print(a)
### 출력
## 30
Leave a comment