오늘의 공부일기/파이썬 공부일기
#6 파이썬 심화 (가상환경, 코드 컨벤션, 변수 유효 범위)
츄98
2023. 3. 23. 12:32
상식적으로 알고 있기~
1. 가상환경
- 파이썬 가상환경 장점: 각 프로젝트마다 독립적인 환경을 구성해 호환성 문제를 최소화시킨다.
1. 가상환경 구축하기
더보기
python -m venv venv
터미널에서 명령어를 통해 가상환경을 구축할 수 있다.
venv라는 이름의 폴더가 생성되고 이후 가상환경에서 설치하는 패키지들은 해당 폴더에 설치된다.
2. 가상환경 활성화하기 ... 이거 까먹지 말자..ㅎㅎㅎ
더보기
Windows: venv\scripts\activate
mac/linux: source venv/bin/activate
2. 코드 컨벤션 .. 지켜야하는 것! (파이썬 기준)
- 변수/함수는 스네이크 표기법 ex) number_list, python_is_very_good
- 클래스는 파스칼 표기법 ex) Class, Pascal, PythonIsVeryGood
- PIE = 3.14 : 상수를 표현할 때는 예외적으로 모든 문자를 대문자로 표현
- numbers = [1,2,3,4] : 리스트를 표기할 떄는 복수로 표현하거나 number_list로 표현한다.
- 문법이 틀리지 않아도 코드컨벤션이 틀리면 아주 큰 감점!
- 파이썬에서는 Hello_World라는 변수명은 존재하지 않는다.
3. 변수 유효 범위 (지역변수, 전역변수)
: 변수가 선언된 위치나 키워드에 따라 변수를 사용할 수 있는 범위가 달라진다. 이를 변수유효범위라 부른다.
- 지역변수: 함수 내부에서 선언, 다른 함수에 영향 없음
- 전역변수: 함수 밖에서 선언, 어디서든 접근
number = 10
# 전역 변수인 10을 출력하고 지역 변수로 다시 선언하는 코드 작성
def func():
print(number) #변수를 선언하기 전에 출력을 했으므로 에러
number = 5
# 실행시켜 보면 에러가 발생한다.
func()
"""
Traceback (most recent call last):
File "sample.py", line 7, in <module>
func()
File "sample.py", line 4, in func
print(number)
UnboundLocalError: local variable 'number' referenced before assignment
"""
주의할 점 1. 함수 내부에서 전역 변수와 동일한 이름으로 지역변수를 할당하면, 함수에서는 해당 변수를 지역변수로 간주한다.
더보기
위 코드의 순서를 바꿔주면 에러는 발생하지 않는다..
number = 5
print(number)
이때는 지역변수를 출력하는 것
number = 10
def func():
global number # 함수에서 number 변수를 다시 할당할 수 있도록 해줍니다.
number = 5 # global 키워드를 사용했기 때문에 전역 변수의 값이 변경됩니다.
func()
print(number) # 5
global을 이용해 전역변수로 할당할 수 있음!
주의할 점 2. 전역변수를 남용하는 것은 권장하지 않는다.
코드가 길어질수록 전역 변수로 선언된 값은 어디서 값이 변했는지 추적하기 어렵고,
문제가 생겼을 때 디버깅을 하기 어려워진다.
따라서 PIE = 3.14 같은 전역 상수를 선언하는 것을 제외하면 전역변수는 사용하지 않는 게 좋은 코드를 만드는 방법..!
대신 return을 사용하길 권장한다.
느낀 점)
- 코드컨벤션이 정말 중요하다는 걸 알았다.
- 변수명이나 클래스명 그동안은 그냥 맘대로 지었는데.. 이젠 신경쓰도록 해야겠다.
- 그동안 썼던 변수명이나 함수.. 클래스.. 제대로 썼는지, 코드컨벤션에 어긋나는지 한 번 살펴보아야겠다.