개발하고 싶어요
global 본문
global 사용하기¶
변수의 사용 범위 알아보기¶
In [95]:
x = 10 # 전역 변수
def foo():
print(x) # 전역 변수 출력
foo()
print(x) # 전역 변수 출력
10
10
In [1]:
def foo():
x = 10 # foo의 지역 변수
print(x) # foo의 지역 변수 출력
foo()
print(x) # 에러 : foo의 지역 변수는 출력할 수 없음
10
---------------------------------------------------------------------------
NameError Traceback (most recent call last)
Cell In[1], line 6
3 print(x) # foo의 지역 변수 출력
5 foo()
----> 6 print(x)
NameError: name 'x' is not defined
함수 안에서 전역 변수 변경¶
In [2]:
x = 10 # 전역 변수
def foo():
x = 20 # foo의 지역 변수
print(x) # foo의 지역 변수 출력
foo()
print(x) # 전역 변수 출력
20
10
In [1]:
x = 10 # 전역 변수
def foo():
global x # 진역 변수 x를 사용하겠다고 설정
x = 20 # x는 전역 변수
print(x) # 전역 변수 출력
foo()
print(x) # 전역 변수 출력
20
20
함수 안에서 함수 만들기¶
In [2]:
def print_hello():
hello = 'hello, world'
def print_message():
print(hello)
print_message() # 실행X
print_hello()
hello, world
지역 변수 변경¶
In [5]:
def A():
x = 10
def B():
x = 20
B()
print(x)
A()
10
In [6]:
def A():
x = 10
def B():
nonlocal x
x = 20
B()
print(x)
A()
20
nonlocal이 변수를 찾는 순서¶
In [7]:
def A():
x = 10
y = 100
def B():
x = 20
def C():
nonlocal x
nonlocal y
x = x + 30
y = y + 300
print(x)
print(y)
C()
B()
A()
50
400
global로 전역 변수 사용하기¶
In [8]:
x = 1
def A():
x = 10
def B():
x = 20
def C():
global x
x = x + 30
print(x)
C()
B()
A()
31
global 사용하기¶
In [21]:
def calc():
a = 3
b = 5
def mul_add(x):
return a * x + b
return mul_add
c = calc()
print(c(1), c(2), c(3), c(4), c(5))
8 11 14 17 20
lambda로 global 만들기¶
In [14]:
def calc():
a = 3
b = 5
return lambda x : a * x + b
c = calc()
print(c(1), c(2), c(3), c(4), c(5))
8 11 14 17 20
global의 지역 변수 변경하기¶
In [15]:
def calc():
a = 3
b = 5
total = 0
def mul_add(x):
nonlocal total
total = total + a * x + b
print(total)
return mul_add
c = calc()
c(1)
c(2)
c(3)
8
19
33
'PYTHON' 카테고리의 다른 글
네이버 검색 - 웹크롤링 (2) | 2024.02.16 |
---|---|
범죄데이터 분석 & 시각화 (0) | 2024.01.21 |
람다 표현식 (1) | 2023.12.27 |
함수 - 재귀호출 (0) | 2023.12.27 |
함수 - 기본 개념, 위치 인수와 키워드 인수 (0) | 2023.12.27 |