class SomeClassName:
def __init__(self, user_id):
self._user_id = user_id
@classmethod
def from_user_id(cls, user_id):
return cls(user_id)
def _private_method():
return
def public_method():
return
for i in range(10):
for j in range(3):
print(i, j)
# index의 줄임말인 i를 사용하고 i이후의 알파벳인 j를 중첩된 반복문에서 사용이 되기도 한다.
# i,j 외에도 좌표를 다루는 코드에서는 x, y를 사용하는 경우도 있다.
for _ in range(10):
some_func()
# 파이썬에서는 _를 사용하여 의미 없는 변수(무시하는 값)를 사용하는 경우도 있다.
expiration = time.time() + 604800 # 1주를 초로 환산한 경우
SECONDS_PER_MINUTE = 60
SECONDS_PER_HOUR = 60 * SECONDS_PER_MINUTE
SECONDS_PER_DAY = 24 * SECONDS_PER_HOUR
SECONDS_PER_WEEK = 7 * SECONDS_PER_DAY
expiration = time.time() + SECONDS_PER_WEEK
...
for tr in trs:
if table_head.text == tr.text: continue
date_info = '확인필요'
attendees_info = '확인필요'
method_info = '확인필요'
discussion_info = '확인필요'
discuss_bool_info = '확인필요'
...
'''
위의 코드에서 “확인 필요” 구문을 넣으면서 오타가 발생할 가능성이 높다.
상수로 변경한다면 다음과 같다.
'''
NEED_CONFIRM = "확인 필요"
for tr in trs:
if table_head.text == tr.text: continue
date_info = NEED_CONFIRM
attendees_info = NEED_CONFIRM
from enum import Enum
class Color(Enum):
RED = 1
GREEN = 2
BLUE = 3
print(type(Color.GREEN))
print(Color.GREEN)
print(Color.GREEN.name)
print(Color.GREEN.value)
'''
출력 결과
'''
<enum 'Color'>
Color.GREEN
GREEN
3
def some_func(flag):
if flag is None:
# something_call_func()
return False
else:
return True
return "test" # 이 라인은 절대 작동이 안되는 부분이다. 이 부분을 죽은 코드라고 한다.
'''
0부터 100까지 5의 배수를 제거한 리스트를 만든다면 for문이 필요한데
리스트 컴프리헨션으로 한줄로 완성 할 수 있다.
'''
spam = []
for number in range(100):
if number % 5 != 0:
spam.append(number)
''''''
spam = [number for number in range(100) if number % 5 != 0]
code_smell_list_comprehension = [[j for j in range(i)] for i in range(100)]
'''
중첩 리스트 컴프리헨션을 사용하지 않고, 하나는 for문으로 풀어쓰는것이 가독성이 더 좋다.
'''
code_smell_list_comprehension = []
for i in range(100):
code_smell_list_comprehension.append([j for j in range(i)])
try:
test_function()
except:
pass
# 혹은 개발자들은 print()만 사용해 에러가 발생했다 정도만 알린다.
print("alert here!") # 빈약한 정보를 알리는 것은 pass처리 한 것과 같다.
'''
에러 메세지는 프로그래머가 아닌 사용자가 읽는 부분이다.
- 무슨 일이 발생했는지
- 사용자가 무엇을 해야 하는지
이 두 가지를 설명해 줘야 한다.
'''