파이썬은 PEP8 규칙에 따라, 함수명과 변수명 둘다 영어소문자a to z 와 언더바_ 와 숫자 0~9 만 쓴다.
문제는 함수명과 변수명의 표기에 영어대문자를 쓰지 않도록 권장하기 때문에 대충 지었다가는 이 단어가 함수인지 변수인지 헷갈릴 수 있다.
그래서 둘을 읽을때부터 잘 구분하는 식별자 같은걸 어떻게 넣는지 궁금했다.
그러나 How to make a good name of function name and variable name
이런걸 쳐봐도 좋은 예제를 보여주면서 요령(노하우, know-how)을 알려주는 사람이 딱히 없었다.
다행히 이 분이 괜찮은 예문을 적어두었다.
https://dkje.github.io/2020/08/03/CleanCodeSeries2-copy/
함수는 get, take 등 (쉬운)동사로 시작하는 구문을 만들어 쓰고, 변수는 명사로 시작하는 구문을 만들어 쓰면 헷갈림은 쉽게 해결된다. 아래의 예제처럼 쓴다.
- 함수(동사V로 시작): get_number_1, get_number_2, ...
- 변수(명사N로 시작): number_1, number_2, ...
아니면 어떤 분의 코딩스타일처럼, 헝가리안 표기법을 변형해서 써도 괜찮다.
f_function_name 이런식으로 함수식별자 f_로 시작하면 찾기가 쉽다. 추천하는 방식은 아닌듯하지만, 함수인지 아닌지는 눈에 확 들어온다.
f_가 너무 짧으면 ftn_ 이나 fn_ 도 괜찮다.
그 밖에
- 그리고 get_items 처럼 복수형 표기 s 는 아예 안 쓰거나, 모두 붙이거나 해야 한다. 썼다 안썼다 섞으면. 나중에 s가 붙는지 안 붙는지 은근히 헷갈린다. 물론 IDE 보조도구 등을 잘 쓰면 상관없겠지만.
- 변수이름 지을때 a, x 이런거는 진짜로 잠깐 쓰고말 때 짓고, 가능하면 aaa 나 asdf 이따위로 짓더라도, 충분히 길게 못해도 2글자는 지어야 한다. 안 그러면 변수 일괄변경할때 개털린다.
예를들어 반복변수를 itr 로 안적고 i 로 적었다가 나중에 이 i를 바꾼답시고 ctrl+F2 / ctrl+shift+L 로 itr 로 바꾸는 순간 내부의 if 가 전부 itrf 로 바뀐다. 뭐 나중에 itrf를 if 로 바꿔주면 된다만은.
'파이썬(Python) > 간단한 연습' 카테고리의 다른 글
판다스(pandas) 옵션에 True 대신 1, False 대신 0 넣어도 잘 동작한다만, True/False로 쓰는 게 안전하다. (0) | 2022.11.26 |
---|---|
파이썬 내장 함수는 복사하기 어렵다. It is hard to copy a built-in function in Python (0) | 2022.11.26 |
판다스 데이터프레임에서 빈 셀은 NaN으로 표기된다. (0) | 2022.11.02 |
다중 for loop 의 변수명을 같게 쓰면 안되는 이유: 중간에 바뀐다. (0) | 2022.11.02 |
time stamp method in Python DeepLearning (0) | 2022.09.27 |