파이번이 뭐낙 개떡같이 개발하더라도 콩떡같이 알아서 하는 언어라
간과하는 부분이 많이 생길수 있는데,
전역변수 관련된 부분에서 깨달음을 얻어 몇자 남겨본다.
돌발질문!
아래 코드의 출력결과는?
a=1
def changeA():
print(a)
a = 3
print(a)
changeA()
print(a)
정답 공개:
더보기
changeA() 함수의 첫번째 줄에서,
a is referenced before assignment, 선언되기 전에 불렸다고 에러가 난다.
다른 언어들은 알아서 전역변수를 먼저 참조하기도 하는데,
파이썬은 이런 부분은 딱 짚어줘야 정상작동한다.
global a 라는 한줄을 꼭 추가해줘야 한다.
a=1
def changeA():
global a
print(a)
a = 3
print(a)
changeA()
print(a)
저렇게 되면,
1
3
3
이 나온담.
기본이 탄탄한 개발자가 되잣!
반응형
'개발 > Python & Flask' 카테고리의 다른 글
Python logging 에 원하는 값 찍기 (inject variable to logging) (0) | 2020.11.13 |
---|---|
pymysql 사용법, 간편한 축약 코드 예시! (0) | 2020.11.13 |
pymysql exception error (예외 처리 정리 및 해석!) (0) | 2020.11.10 |
logging에 필터추가하기! 초간단 예시 (0) | 2020.11.10 |
Flask Python Threading 쓰레딩에 대해 알아보잣 (0) | 2020.11.10 |