TIL/11/20230327
코드컨벤션
해당 언어의 스타일을 통일하자는 “약속”이다.
파이썬에서는 PEP-8 이라는 컨벤션 가이드를 제공한다.
https://peps.python.org/pep-0008/
스타일을 정해놓고 약속을 하는 이유는 같이 개발하는 사람들이 스타일을 통일해서
최대한 가독성 좋은 코드를 만들기 위함이다.
네이밍 컨벤션
함수 혹은 클래스 혹은 변수 이름을 지을 때 어떤 방식으로 네이밍을 하냐는것.
파이썬에서 변수함수를 네이밍 할 때는 스네이크 표기법을 그리고 클래스를 네이밍 할 때는 파스칼 표기법을 사용한다.
네이밍 컨번션에는 대표적으로 파스칼, 스네이크, 카멜 이 세가지 표기법이 존재한다.
ex) Python is very good
파스칼 :
각 단어의 맨 앞자리를 대문자로 시작한다.
각 단어의 구분을 띄어쓰기가 아니라 대문자로 한다.
(클래스를 네이밍할 때 사용한다)
카멜 :
자바에서 주로 사용되고 파이썬에서는 사용되지 않는다.
파스칼과 똑같은데 차이점은 맨 앞글자가 대문자냐, 소문자냐의 차이다.
카멜은 소문자로 표기한다.
구글에 검색해보면 ‘파이썬에서는 카멜 표기법을 많이 사용한다’라고 적혀있는데
그 이유는 카멜 표기법 자체가 첫번째 문자가 소문자로 시작하는 Lower Camel Case가 있고,
첫번째 문자가 대문자로 시작하는 Upper Camel Case가 있다.
그래서 어떻게 보면 파스칼 표기법을 카멜 표기법이라고 불러도 문제가 될건 없다.
그러나 그냥 카멜이라고만 하면 로월카멜케이랑 좀 헷갈릴 수 있다 보니까 파스칼, 카멜 이렇게 두개를 분리해서 부르는게 좋다.
마이크로소프트에서도 소문자로 시작하는 표현법만 카멜케이스로 판단하고, 대문자로 시작하는 파스칼이라고 명시하고 있다.
스네이크 :
스네이크는 각 단어를 언더바로 구분한다.
ex) googoo_is_very_cute
모양이 뱀과 비슷하게 생겼다고 해서 지어진 이름이다.
def hello_world():
pass
#함수이름을 지정할때
hello_world = 123
#변수이름을 지정할때
# 만약에 class를 선언한다면?
class HelloWorld():
pass
가끔 이 두개를 혼용해서 Hello_world 대문자와 언더바를 혼용하는 경우도 있는데
이거는 python에서 존재할 수 없는 네이밍 방식이다.
이 차이점이 별개 아닌걸로 보일 수 있지만 취업 준비할 때 이력서랑 포토폴리오 같이 제출하는데
포토폴리오를 받은 개발자분들께서 받아서 다 보는데 그 때 네이밍 컨벤션이 안맞으면 매우 많이 감점당한다!
클래스, 함수, 변수 등을 네이밍 할때는 이름만 보고 해당 코드가 어떤걸 의미하는지 추측할 수 있어야 한다.
PIE = 3.14
# 상수는 모두 대문자
# 상수와 변수의 차이점
상수는 한번 선언하고 값이 바뀌지 않는다는걸 의미한다.
ex)
PIE = 3.14
이렇게 정의를 했을 때 파이는 어떤 경우에도 3.14다.
여기서 갑자기 PIE = 1 이렇게 바꿀일이 절대 없는 거다.
# 만약 조금 긴 단어의 상수를 선언한다면
‘NUMBER_LIST’ 이런식으로 대문자 언더바 대문자로 사용한다.
스네이크랑 똑같지만 스네이크는 모든 문자가 소문자이고 상수의 경우에는 언더바를 붙여서 대문자로 유지시켜주는 것이다.
변수 유효 범위
파이썬을 포함한 대부분의 언어에는 “변수 유효 범위”라는 개념이 있다.
변수가 선언된 위치나 키워드에 따라 변수를 사용할 수 있는 범위가 달라지게 되는데,
이를 변수 유효 범위 혹은 variable scope이라고 부른다.
파이썬에서 변수는 유표 범위에 따라 지역 변수(local vatiable)와 전역 변수(global vatiable)로 나뉘게 된다.
지역 변수는 함수 내부에서 선언되며 다른 함수에 영향을 끼치지 않는다.
반대로 전역 변수는 함수 밖에서 선언되며 어디서든 접근할 수 있다.
지역 변수로 선언된 변수는 global 키워드를 사용해 전역 변수로 재선언할 수 있다.