개발일기

#6 파이썬 심화 (가상환경, 코드 컨벤션, 변수 유효 범위) 본문

오늘의 공부일기/파이썬 공부일기

#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을 사용하길 권장한다.

 

 

느낀 점)

  1. 코드컨벤션이 정말 중요하다는 걸 알았다.
  2. 변수명이나 클래스명 그동안은 그냥 맘대로 지었는데.. 이젠 신경쓰도록 해야겠다.
  3. 그동안 썼던 변수명이나 함수.. 클래스.. 제대로 썼는지, 코드컨벤션에 어긋나는지 한 번 살펴보아야겠다.