주석은 프로그래밍에서 어려운 문법을 가지고 있는 것도 아니고, 프로그램의 실행시간의 지대한 영향을 끼치는 것도 아니다. 그런데 왜 필자는 주석을 Python과 친해지기 포스팅이 아닌 Advanced버전인 Python과 매우 친해지기에 올렸을까? 아래의 두 가지 이유가 있다.
1. 주석은 프로그래머들 사이의 협업의 규약이기에 매우 중요하므로, 이는 어느 정도 실력이 보증된 프로그래머가 작성해야된다.
2. 필자는 까먹었다.
자 그럼 Python세계의 주석을 알아보도록 하자
주석(Comment)
주석은 프로그램의 실행에 영향을 미치지 않으며, 프로그래머가 필요에 의해서 코드에 추가적인 정보를 입력하는 것이다.
Python에서는 다음과 같은 방법으로 주석을 남길 수 있다.
한 줄 주석(#)
def comment(value) :
print(value) # 한줄의 주석을 추가합니다.
여러 줄 주석(''' ~ ''')
def comment(value) :
print(value)
'''
여러줄의 주석을 추가하는
방법은 작은따옴표
세개를 연달아 쓰는것입니다.
끝내는 방법도 동일합니다.
'''
훌륭한 주석에 대한 고찰
좋은 주석은 무엇일까? 보기에 번잡스럽지 않으면서도, 필요한 내용을 정확하게 알려주는 주석이 좋은 주석이라고 할 수 있겠다. 대표적으로 아래와 같은 주석이 많이 쓰인다.
① 머리글 : 프로그램의 제작자, 저작권, 생성일, 변경 일등을 기술한다.
#######################
# Python calc program
# Python 3.8.4
# written by 리덕토 at 2021_04_10
# This code is protected by XXX
#
# revise-1 2021_04_XX : add sub function
# revise-2 2021_05_XX : add div function
#######################
def add(val1, val2):
return val1 + val2
def sub(val1,val2) :
return val1-val2
def div(val1,val2) :
return val1/val2
② 함수 동작 주석 : 함수의 파라미터, 리턴 값, 동작 방식을 설명한다.(프로그래머도 사람이라, 자연어 기술이 더 읽기 좋다.)
# function_name : do_something
#
# purpose : to get property of user's request
#
# parameters :
# - req : String, should include ":"
# - parameter : Integer, 1 = length of seperated req, 2 = sum of seperated req
#
# return : Integer, length of handled data or sum of that
#
# Warn : req should only contained Integer value and ":"
def do_something(req, parameter) :
data = data.strip(":")
if(parameter == 1) :
return len(data)
elif(parameter == 2) :
sum_data = 0
for i in range(len(data)) :
sum_data += data[i]
return sum_data
좋은 주석을 단다는 건 어려운 일이다. 주석을 다는 규약이 없는 조직이라는 필연적으로 프로그래머 자기 자신 나름대로의 주석 습관이 생기기 마련이다.
누군가는 모든 코드에 주석을 달 것이고(이건 아닌 거 같다.) 누군가는 나만 보려고 주석 없는 코드를 만들 수도 있다.
다만 좋은 형상관리 도구들(Github)들을 가보면 모두가 사용하는 코드에 주석이 한 줄도 없는 경우는 찾아보기 힘들다.
매너 있는 프로그래머가 되기 위해서, 또 게으른 우리 자신을 위해서 주석을 달아두는 건 분명 도움되는 습관이다. 다음 시간은 Iterator에 대해서 알아보자
'Python > 파이선과 친해지기' 카테고리의 다른 글
[Python] - Python과 매우 친해지기-내포(Comprehension) (0) | 2021.04.10 |
---|---|
[Python] - Python과 매우 친해지기-Iterator와 Generator (0) | 2021.04.10 |
[Python] - Python과 매우 친해지기-예약어 사전 (2) | 2021.04.10 |
[Python] - Python과 매우 친해지기-학생관리 프로그램ver3 (0) | 2021.04.08 |
[Python] - Python과 매우 친해지기-예외처리 (0) | 2021.04.08 |